Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/create_global_table/_create_global_table_input.rs

@@ -1,1 +82,138 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* StructureGenerator.kt:197 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
/* RustType.kt:516 */
    3      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    4      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5         -
pub struct CreateGlobalTableInput {
    6         -
    /// <p>The global table name.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct CreateGlobalTableInput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The global table name.</p>
    7     10   
    pub global_table_name: ::std::option::Option<::std::string::String>,
    8         -
    /// <p>The Regions where the global table needs to be created.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>The Regions where the global table needs to be created.</p>
    9     12   
    pub replication_group: ::std::option::Option<::std::vec::Vec<crate::types::Replica>>,
          13  +
    /* StructureGenerator.kt:201 */
   10     14   
}
          15  +
/* StructureGenerator.kt:135 */
   11     16   
impl CreateGlobalTableInput {
   12         -
    /// <p>The global table name.</p>
          17  +
    /// /* StructureGenerator.kt:231 */<p>The global table name.</p>
          18  +
    /* StructureGenerator.kt:166 */
   13     19   
    pub fn global_table_name(&self) -> ::std::option::Option<&str> {
          20  +
        /* StructureGenerator.kt:169 */
   14     21   
        self.global_table_name.as_deref()
          22  +
        /* StructureGenerator.kt:166 */
   15     23   
    }
   16         -
    /// <p>The Regions where the global table needs to be created.</p>
   17         -
    ///
   18         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.replication_group.is_none()`.
          24  +
    /// /* StructureGenerator.kt:231 */<p>The Regions where the global table needs to be created.</p>
          25  +
    /// /* StructureGenerator.kt:162 */
          26  +
    /// /* 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 `.replication_group.is_none()`.
          27  +
    /* StructureGenerator.kt:166 */
   19     28   
    pub fn replication_group(&self) -> &[crate::types::Replica] {
   20         -
        self.replication_group.as_deref().unwrap_or_default()
          29  +
        /* StructureGenerator.kt:169 */
          30  +
        self.replication_group
          31  +
            .as_deref()
          32  +
            /* StructureGenerator.kt:175 */
          33  +
            .unwrap_or_default()
          34  +
        /* StructureGenerator.kt:166 */
   21     35   
    }
          36  +
    /* StructureGenerator.kt:135 */
   22     37   
}
          38  +
/* ClientCodegenVisitor.kt:237 */
   23     39   
impl CreateGlobalTableInput {
   24         -
    /// Creates a new builder-style object to manufacture [`CreateGlobalTableInput`](crate::operation::create_global_table::CreateGlobalTableInput).
          40  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`CreateGlobalTableInput`](crate::operation::create_global_table::CreateGlobalTableInput).
          41  +
    /* BuilderGenerator.kt:175 */
   25     42   
    pub fn builder() -> crate::operation::create_global_table::builders::CreateGlobalTableInputBuilder {
          43  +
        /* BuilderGenerator.kt:176 */
   26     44   
        crate::operation::create_global_table::builders::CreateGlobalTableInputBuilder::default()
          45  +
        /* BuilderGenerator.kt:175 */
   27     46   
    }
          47  +
    /* ClientCodegenVisitor.kt:237 */
   28     48   
}
   29     49   
   30         -
/// A builder for [`CreateGlobalTableInput`](crate::operation::create_global_table::CreateGlobalTableInput).
          50  +
/// /* BuilderGenerator.kt:342 */A builder for [`CreateGlobalTableInput`](crate::operation::create_global_table::CreateGlobalTableInput).
          51  +
/* RustType.kt:516 */
   31     52   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          53  +
/* RustType.kt:516 */
   32     54   
#[non_exhaustive]
          55  +
/* BuilderGenerator.kt:345 */
   33     56   
pub struct CreateGlobalTableInputBuilder {
   34         -
    pub(crate) global_table_name: ::std::option::Option<::std::string::String>,
          57  +
    /* BuilderGenerator.kt:275 */ pub(crate) global_table_name: ::std::option::Option<::std::string::String>,
          58  +
    /* BuilderGenerator.kt:275 */
   35     59   
    pub(crate) replication_group: ::std::option::Option<::std::vec::Vec<crate::types::Replica>>,
          60  +
    /* BuilderGenerator.kt:345 */
   36     61   
}
          62  +
/* BuilderGenerator.kt:355 */
   37     63   
impl CreateGlobalTableInputBuilder {
   38         -
    /// <p>The global table name.</p>
   39         -
    /// This field is required.
          64  +
    /// /* BuilderGenerator.kt:286 */<p>The global table name.</p>
          65  +
    /// /* BuilderGenerator.kt:288 */This field is required.
          66  +
    /* BuilderGenerator.kt:291 */
   40     67   
    pub fn global_table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          68  +
        /* BuilderGenerator.kt:292 */
   41     69   
        self.global_table_name = ::std::option::Option::Some(input.into());
          70  +
        /* BuilderGenerator.kt:293 */
   42     71   
        self
          72  +
        /* BuilderGenerator.kt:291 */
   43     73   
    }
   44         -
    /// <p>The global table name.</p>
          74  +
    /// /* BuilderGenerator.kt:312 */<p>The global table name.</p>
          75  +
    /* BuilderGenerator.kt:314 */
   45     76   
    pub fn set_global_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          77  +
        /* BuilderGenerator.kt:315 */
   46     78   
        self.global_table_name = input;
   47     79   
        self
          80  +
        /* BuilderGenerator.kt:314 */
   48     81   
    }
   49         -
    /// <p>The global table name.</p>
          82  +
    /// /* BuilderGenerator.kt:334 */<p>The global table name.</p>
          83  +
    /* BuilderGenerator.kt:336 */
   50     84   
    pub fn get_global_table_name(&self) -> &::std::option::Option<::std::string::String> {
          85  +
        /* BuilderGenerator.kt:337 */
   51     86   
        &self.global_table_name
          87  +
        /* BuilderGenerator.kt:336 */
   52     88   
    }
   53         -
    /// Appends an item to `replication_group`.
          89  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `replication_group`.
          90  +
    /* BuilderGenerator.kt:411 */
   54     91   
    ///
   55         -
    /// To override the contents of this collection use [`set_replication_group`](Self::set_replication_group).
          92  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_replication_group`](Self::set_replication_group).
          93  +
    /* BuilderGenerator.kt:413 */
   56     94   
    ///
   57         -
    /// <p>The Regions where the global table needs to be created.</p>
          95  +
    /// /* BuilderGenerator.kt:414 */<p>The Regions where the global table needs to be created.</p>
          96  +
    /* BuilderGenerator.kt:418 */
   58     97   
    pub fn replication_group(mut self, input: crate::types::Replica) -> Self {
          98  +
        /* BuilderGenerator.kt:419 */
   59     99   
        let mut v = self.replication_group.unwrap_or_default();
   60    100   
        v.push(input);
   61    101   
        self.replication_group = ::std::option::Option::Some(v);
   62    102   
        self
         103  +
        /* BuilderGenerator.kt:418 */
   63    104   
    }
   64         -
    /// <p>The Regions where the global table needs to be created.</p>
         105  +
    /// /* BuilderGenerator.kt:312 */<p>The Regions where the global table needs to be created.</p>
         106  +
    /* BuilderGenerator.kt:314 */
   65    107   
    pub fn set_replication_group(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Replica>>) -> Self {
         108  +
        /* BuilderGenerator.kt:315 */
   66    109   
        self.replication_group = input;
   67    110   
        self
         111  +
        /* BuilderGenerator.kt:314 */
   68    112   
    }
   69         -
    /// <p>The Regions where the global table needs to be created.</p>
         113  +
    /// /* BuilderGenerator.kt:334 */<p>The Regions where the global table needs to be created.</p>
         114  +
    /* BuilderGenerator.kt:336 */
   70    115   
    pub fn get_replication_group(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Replica>> {
         116  +
        /* BuilderGenerator.kt:337 */
   71    117   
        &self.replication_group
         118  +
        /* BuilderGenerator.kt:336 */
   72    119   
    }
   73         -
    /// Consumes the builder and constructs a [`CreateGlobalTableInput`](crate::operation::create_global_table::CreateGlobalTableInput).
         120  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`CreateGlobalTableInput`](crate::operation::create_global_table::CreateGlobalTableInput).
         121  +
    /* BuilderGenerator.kt:253 */
   74    122   
    pub fn build(
   75    123   
        self,
   76    124   
    ) -> ::std::result::Result<crate::operation::create_global_table::CreateGlobalTableInput, ::aws_smithy_types::error::operation::BuildError> {
   77         -
        ::std::result::Result::Ok(crate::operation::create_global_table::CreateGlobalTableInput {
   78         -
            global_table_name: self.global_table_name,
         125  +
        /* BuilderGenerator.kt:254 */
         126  +
        ::std::result::Result::Ok(
         127  +
            /* BuilderGenerator.kt:477 */
         128  +
            crate::operation::create_global_table::CreateGlobalTableInput {
         129  +
                /* BuilderGenerator.kt:481 */ global_table_name: self.global_table_name,
         130  +
                /* BuilderGenerator.kt:481 */
   79    131   
                replication_group: self.replication_group,
   80         -
        })
         132  +
                /* BuilderGenerator.kt:477 */
         133  +
            }, /* BuilderGenerator.kt:254 */
         134  +
        )
         135  +
        /* BuilderGenerator.kt:253 */
   81    136   
    }
         137  +
    /* BuilderGenerator.kt:355 */
   82    138   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/create_global_table/_create_global_table_output.rs

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

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

@@ -1,1 +174,192 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* CodegenDelegator.kt:255 */
    2      3   
pub use crate::operation::create_global_table::_create_global_table_output::CreateGlobalTableOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::create_global_table::_create_global_table_input::CreateGlobalTableInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::create_global_table::builders::CreateGlobalTableInputBuilder {
    7     10   
    /// Sends a request with this input using the given client.
    8     11   
    pub async fn send_with(
    9     12   
        self,
   10     13   
        client: &crate::Client,
   11     14   
    ) -> ::std::result::Result<
   12     15   
        crate::operation::create_global_table::CreateGlobalTableOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::create_global_table::CreateGlobalTableError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.create_global_table();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `CreateGlobalTable`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `CreateGlobalTable`.
   24     27   
///
   25         -
/// <p>Creates a global table from an existing table. A global table creates a replication relationship between two or more DynamoDB tables with the same table name in the provided Regions.</p><note>
          28  +
/// /* FluentBuilderGenerator.kt:130 */<p>Creates a global table from an existing table. A global table creates a replication relationship between two or more DynamoDB tables with the same table name in the provided Regions.</p><note>
   26     29   
/// <p>This operation only applies to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html">Version 2017.11.29</a> of global tables.</p>
   27     30   
/// </note>
   28     31   
/// <p>If you want to add a new replica table to a global table, each of the following conditions must be true:</p>
   29     32   
/// <ul>
   30     33   
/// <li>
   31     34   
/// <p>The table must have the same primary key as all of the other replicas.</p></li>
   32     35   
/// <li>
   33     36   
/// <p>The table must have the same name as all of the other replicas.</p></li>
   34     37   
/// <li>
   35     38   
/// <p>The table must have DynamoDB Streams enabled, with the stream containing both the new and the old images of the item.</p></li>
   36     39   
/// <li>
   37     40   
/// <p>None of the replica tables in the global table can contain any data.</p></li>
   38     41   
/// </ul>
   39     42   
/// <p>If global secondary indexes are specified, then the following conditions must also be met:</p>
   40     43   
/// <ul>
   41     44   
/// <li>
   42     45   
/// <p>The global secondary indexes must have the same name.</p></li>
   43     46   
/// <li>
   44     47   
/// <p>The global secondary indexes must have the same hash key and sort key (if present).</p></li>
   45     48   
/// </ul>
   46     49   
/// <p>If local secondary indexes are specified, then the following conditions must also be met:</p>
   47     50   
/// <ul>
   48     51   
/// <li>
   49     52   
/// <p>The local secondary indexes must have the same name.</p></li>
   50     53   
/// <li>
   51     54   
/// <p>The local secondary indexes must have the same hash key and sort key (if present).</p></li>
   52     55   
/// </ul><important>
   53     56   
/// <p>Write capacity settings should be set consistently across your replica tables and secondary indexes. DynamoDB strongly recommends enabling auto scaling to manage the write capacity settings for all of your global tables replicas and indexes.</p>
   54     57   
/// <p>If you prefer to manage write capacity settings manually, you should provision equal replicated write capacity units to your replica tables. You should also provision equal replicated write capacity units to matching secondary indexes across your global table.</p>
   55     58   
/// </important>
          59  +
/* RustType.kt:516 */
   56     60   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          61  +
/* FluentBuilderGenerator.kt:270 */
   57     62   
pub struct CreateGlobalTableFluentBuilder {
   58     63   
    handle: ::std::sync::Arc<crate::client::Handle>,
   59     64   
    inner: crate::operation::create_global_table::builders::CreateGlobalTableInputBuilder,
   60     65   
    config_override: ::std::option::Option<crate::config::Builder>,
   61     66   
}
          67  +
/* FluentBuilderGenerator.kt:381 */
   62     68   
impl
   63     69   
    crate::client::customize::internal::CustomizableSend<
   64     70   
        crate::operation::create_global_table::CreateGlobalTableOutput,
   65     71   
        crate::operation::create_global_table::CreateGlobalTableError,
   66     72   
    > for CreateGlobalTableFluentBuilder
   67     73   
{
   68     74   
    fn send(
   69     75   
        self,
   70     76   
        config_override: crate::config::Builder,
   71     77   
    ) -> crate::client::customize::internal::BoxFuture<
   72     78   
        crate::client::customize::internal::SendResult<
   73     79   
            crate::operation::create_global_table::CreateGlobalTableOutput,
   74     80   
            crate::operation::create_global_table::CreateGlobalTableError,
   75     81   
        >,
   76     82   
    > {
   77     83   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   78     84   
    }
   79     85   
}
          86  +
/* FluentBuilderGenerator.kt:282 */
   80     87   
impl CreateGlobalTableFluentBuilder {
          88  +
    /* FluentBuilderGenerator.kt:288 */
   81     89   
    /// Creates a new `CreateGlobalTableFluentBuilder`.
   82     90   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   83     91   
        Self {
   84     92   
            handle,
   85     93   
            inner: ::std::default::Default::default(),
   86     94   
            config_override: ::std::option::Option::None,
   87     95   
        }
   88     96   
    }
          97  +
    /* FluentBuilderGenerator.kt:301 */
   89     98   
    /// Access the CreateGlobalTable as a reference.
   90     99   
    pub fn as_input(&self) -> &crate::operation::create_global_table::builders::CreateGlobalTableInputBuilder {
   91    100   
        &self.inner
   92    101   
    }
         102  +
    /* FluentBuilderGenerator.kt:145 */
   93    103   
    /// Sends the request and returns the response.
   94    104   
    ///
   95    105   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   96    106   
    /// can be matched against.
   97    107   
    ///
   98    108   
    /// By default, any retryable failures will be retried twice. Retry behavior
   99    109   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
  100    110   
    /// set when configuring the client.
  101    111   
    pub async fn send(
  102    112   
        self,
  103    113   
    ) -> ::std::result::Result<
  104    114   
        crate::operation::create_global_table::CreateGlobalTableOutput,
  105    115   
        ::aws_smithy_runtime_api::client::result::SdkError<
  106    116   
            crate::operation::create_global_table::CreateGlobalTableError,
  107    117   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  108    118   
        >,
  109    119   
    > {
  110    120   
        let input = self
  111    121   
            .inner
  112    122   
            .build()
  113    123   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
  114    124   
        let runtime_plugins = crate::operation::create_global_table::CreateGlobalTable::operation_runtime_plugins(
  115    125   
            self.handle.runtime_plugins.clone(),
  116    126   
            &self.handle.conf,
  117    127   
            self.config_override,
  118    128   
        );
  119    129   
        crate::operation::create_global_table::CreateGlobalTable::orchestrate(&runtime_plugins, input).await
  120    130   
    }
  121    131   
  122    132   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
  123    133   
    pub fn customize(
  124    134   
        self,
  125    135   
    ) -> crate::client::customize::CustomizableOperation<
  126    136   
        crate::operation::create_global_table::CreateGlobalTableOutput,
  127    137   
        crate::operation::create_global_table::CreateGlobalTableError,
  128    138   
        Self,
  129    139   
    > {
  130    140   
        crate::client::customize::CustomizableOperation::new(self)
  131    141   
    }
         142  +
    /* FluentBuilderGenerator.kt:315 */
  132    143   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  133    144   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  134    145   
        self
  135    146   
    }
  136    147   
  137    148   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  138    149   
        self.config_override = config_override;
  139    150   
        self
  140    151   
    }
  141         -
    /// <p>The global table name.</p>
         152  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The global table name.</p>
         153  +
    /* FluentBuilderGenerator.kt:500 */
  142    154   
    pub fn global_table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  143    155   
        self.inner = self.inner.global_table_name(input.into());
  144    156   
        self
  145    157   
    }
  146         -
    /// <p>The global table name.</p>
         158  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The global table name.</p>
         159  +
    /* FluentBuilderGenerator.kt:500 */
  147    160   
    pub fn set_global_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  148    161   
        self.inner = self.inner.set_global_table_name(input);
  149    162   
        self
  150    163   
    }
  151         -
    /// <p>The global table name.</p>
         164  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The global table name.</p>
         165  +
    /* FluentBuilderGenerator.kt:520 */
  152    166   
    pub fn get_global_table_name(&self) -> &::std::option::Option<::std::string::String> {
  153    167   
        self.inner.get_global_table_name()
  154    168   
    }
  155         -
    ///
         169  +
    /// /* FluentBuilderGenerator.kt:436 */
  156    170   
    /// Appends an item to `ReplicationGroup`.
  157    171   
    ///
  158    172   
    /// To override the contents of this collection use [`set_replication_group`](Self::set_replication_group).
  159    173   
    ///
  160         -
    /// <p>The Regions where the global table needs to be created.</p>
         174  +
    /// /* FluentBuilderGenerator.kt:443 */<p>The Regions where the global table needs to be created.</p>
         175  +
    /* FluentBuilderGenerator.kt:446 */
  161    176   
    pub fn replication_group(mut self, input: crate::types::Replica) -> Self {
  162    177   
        self.inner = self.inner.replication_group(input);
  163    178   
        self
  164    179   
    }
  165         -
    /// <p>The Regions where the global table needs to be created.</p>
         180  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The Regions where the global table needs to be created.</p>
         181  +
    /* FluentBuilderGenerator.kt:500 */
  166    182   
    pub fn set_replication_group(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Replica>>) -> Self {
  167    183   
        self.inner = self.inner.set_replication_group(input);
  168    184   
        self
  169    185   
    }
  170         -
    /// <p>The Regions where the global table needs to be created.</p>
         186  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The Regions where the global table needs to be created.</p>
         187  +
    /* FluentBuilderGenerator.kt:520 */
  171    188   
    pub fn get_replication_group(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Replica>> {
  172    189   
        self.inner.get_replication_group()
  173    190   
    }
         191  +
    /* FluentBuilderGenerator.kt:282 */
  174    192   
}

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

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/create_table/_create_table_input.rs

@@ -1,1 +749,934 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the input of a <code>CreateTable</code> operation.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the input of a <code>CreateTable</code> operation.</p>
           4  +
/* RustType.kt:516 */
    4      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    5      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6         -
pub struct CreateTableInput {
    7         -
    /// <p>An array of attributes that describe the key schema for the table and indexes.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct CreateTableInput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>An array of attributes that describe the key schema for the table and indexes.</p>
    8     10   
    pub attribute_definitions: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>,
    9         -
    /// <p>The name of the table to create.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>The name of the table to create.</p>
   10     12   
    pub table_name: ::std::option::Option<::std::string::String>,
   11         -
    /// <p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
          13  +
    /// /* StructureGenerator.kt:231 */<p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
   12     14   
    /// <p>Each <code>KeySchemaElement</code> in the array is composed of:</p>
   13     15   
    /// <ul>
   14     16   
    /// <li>
   15     17   
    /// <p><code>AttributeName</code> - The name of this key attribute.</p></li>
   16     18   
    /// <li>
   17     19   
    /// <p><code>KeyType</code> - The role that the key attribute will assume:</p>
   18     20   
    /// <ul>
   19     21   
    /// <li>
   20     22   
    /// <p><code>HASH</code> - partition key</p></li>
   21     23   
    /// <li>
   22     24   
    /// <p><code>RANGE</code> - sort key</p></li>
   23     25   
    /// </ul></li>
   24     26   
    /// </ul><note>
   25     27   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from the DynamoDB usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
   26     28   
    /// <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>
   27     29   
    /// </note>
   28     30   
    /// <p>For a simple primary key (partition key), you must provide exactly one element with a <code>KeyType</code> of <code>HASH</code>.</p>
   29     31   
    /// <p>For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a <code>KeyType</code> of <code>HASH</code>, and the second element must have a <code>KeyType</code> of <code>RANGE</code>.</p>
   30     32   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
   31     33   
    pub key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
   32         -
    /// <p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
          34  +
    /// /* StructureGenerator.kt:231 */<p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
   33     35   
    /// <p>Each local secondary index in the array includes the following:</p>
   34     36   
    /// <ul>
   35     37   
    /// <li>
   36     38   
    /// <p><code>IndexName</code> - The name of the local secondary index. Must be unique only for this table.</p>
   37     39   
    /// <p></p></li>
   38     40   
    /// <li>
   39     41   
    /// <p><code>KeySchema</code> - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table.</p></li>
   40     42   
    /// <li>
   41     43   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
   42     44   
    /// <ul>
   43     45   
    /// <li>
   44     46   
    /// <p><code>ProjectionType</code> - One of the following:</p>
   45     47   
    /// <ul>
   46     48   
    /// <li>
   47     49   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
   48     50   
    /// <li>
   49     51   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
   50     52   
    /// <li>
   51     53   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
   52     54   
    /// </ul></li>
   53     55   
    /// <li>
   54     56   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
   55     57   
    /// </ul></li>
   56     58   
    /// </ul>
   57     59   
    pub local_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndex>>,
   58         -
    /// <p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
          60  +
    /// /* StructureGenerator.kt:231 */<p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
   59     61   
    /// <ul>
   60     62   
    /// <li>
   61     63   
    /// <p><code>IndexName</code> - The name of the global secondary index. Must be unique only for this table.</p>
   62     64   
    /// <p></p></li>
   63     65   
    /// <li>
   64     66   
    /// <p><code>KeySchema</code> - Specifies the key schema for the global secondary index.</p></li>
   65     67   
    /// <li>
   66     68   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
   67     69   
    /// <ul>
   68     70   
    /// <li>
   69     71   
    /// <p><code>ProjectionType</code> - One of the following:</p>
   70     72   
    /// <ul>
   71     73   
    /// <li>
   72     74   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
   73     75   
    /// <li>
   74     76   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
   75     77   
    /// <li>
   76     78   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
   77     79   
    /// </ul></li>
   78     80   
    /// <li>
   79     81   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
   80     82   
    /// </ul></li>
   81     83   
    /// <li>
   82     84   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.</p></li>
   83     85   
    /// </ul>
   84     86   
    pub global_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndex>>,
   85         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
          87  +
    /// /* StructureGenerator.kt:231 */<p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
   86     88   
    /// <ul>
   87     89   
    /// <li>
   88     90   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
   89     91   
    /// <li>
   90     92   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
   91     93   
    /// </ul>
   92     94   
    pub billing_mode: ::std::option::Option<crate::types::BillingMode>,
   93         -
    /// <p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
          95  +
    /// /* StructureGenerator.kt:231 */<p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
   94     96   
    /// <p>If you set BillingMode as <code>PROVISIONED</code>, you must specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, you cannot specify this property.</p>
   95     97   
    /// <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>
   96     98   
    pub provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughput>,
   97         -
    /// <p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
          99  +
    /// /* StructureGenerator.kt:231 */<p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
   98    100   
    /// <ul>
   99    101   
    /// <li>
  100    102   
    /// <p><code>StreamEnabled</code> - Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false).</p></li>
  101    103   
    /// <li>
  102    104   
    /// <p><code>StreamViewType</code> - When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the table's stream. Valid values for <code>StreamViewType</code> are:</p>
  103    105   
    /// <ul>
  104    106   
    /// <li>
  105    107   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
  106    108   
    /// <li>
  107    109   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
  108    110   
    /// <li>
  109    111   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
  110    112   
    /// <li>
  111    113   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
  112    114   
    /// </ul></li>
  113    115   
    /// </ul>
  114    116   
    pub stream_specification: ::std::option::Option<crate::types::StreamSpecification>,
  115         -
    /// <p>Represents the settings used to enable server-side encryption.</p>
         117  +
    /// /* StructureGenerator.kt:231 */<p>Represents the settings used to enable server-side encryption.</p>
  116    118   
    pub sse_specification: ::std::option::Option<crate::types::SseSpecification>,
  117         -
    /// <p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         119  +
    /// /* StructureGenerator.kt:231 */<p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
  118    120   
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
         121  +
    /* StructureGenerator.kt:201 */
  119    122   
}
         123  +
/* StructureGenerator.kt:135 */
  120    124   
impl CreateTableInput {
  121         -
    /// <p>An array of attributes that describe the key schema for the table and indexes.</p>
  122         -
    ///
  123         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.attribute_definitions.is_none()`.
         125  +
    /// /* StructureGenerator.kt:231 */<p>An array of attributes that describe the key schema for the table and indexes.</p>
         126  +
    /// /* StructureGenerator.kt:162 */
         127  +
    /// /* StructureGenerator.kt:163 */If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.attribute_definitions.is_none()`.
         128  +
    /* StructureGenerator.kt:166 */
  124    129   
    pub fn attribute_definitions(&self) -> &[crate::types::AttributeDefinition] {
  125         -
        self.attribute_definitions.as_deref().unwrap_or_default()
  126         -
    }
  127         -
    /// <p>The name of the table to create.</p>
         130  +
        /* StructureGenerator.kt:169 */
         131  +
        self.attribute_definitions
         132  +
            .as_deref()
         133  +
            /* StructureGenerator.kt:175 */
         134  +
            .unwrap_or_default()
         135  +
        /* StructureGenerator.kt:166 */
         136  +
    }
         137  +
    /// /* StructureGenerator.kt:231 */<p>The name of the table to create.</p>
         138  +
    /* StructureGenerator.kt:166 */
  128    139   
    pub fn table_name(&self) -> ::std::option::Option<&str> {
         140  +
        /* StructureGenerator.kt:169 */
  129    141   
        self.table_name.as_deref()
         142  +
        /* StructureGenerator.kt:166 */
  130    143   
    }
  131         -
    /// <p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         144  +
    /// /* StructureGenerator.kt:231 */<p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
  132    145   
    /// <p>Each <code>KeySchemaElement</code> in the array is composed of:</p>
  133    146   
    /// <ul>
  134    147   
    /// <li>
  135    148   
    /// <p><code>AttributeName</code> - The name of this key attribute.</p></li>
  136    149   
    /// <li>
  137    150   
    /// <p><code>KeyType</code> - The role that the key attribute will assume:</p>
  138    151   
    /// <ul>
  139    152   
    /// <li>
  140    153   
    /// <p><code>HASH</code> - partition key</p></li>
  141    154   
    /// <li>
  142    155   
    /// <p><code>RANGE</code> - sort key</p></li>
  143    156   
    /// </ul></li>
  144    157   
    /// </ul><note>
  145    158   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from the DynamoDB usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  146    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>
  147    160   
    /// </note>
  148    161   
    /// <p>For a simple primary key (partition key), you must provide exactly one element with a <code>KeyType</code> of <code>HASH</code>.</p>
  149    162   
    /// <p>For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a <code>KeyType</code> of <code>HASH</code>, and the second element must have a <code>KeyType</code> of <code>RANGE</code>.</p>
  150    163   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
  151         -
    ///
  152         -
    /// 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()`.
         164  +
    /// /* StructureGenerator.kt:162 */
         165  +
    /// /* 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()`.
         166  +
    /* StructureGenerator.kt:166 */
  153    167   
    pub fn key_schema(&self) -> &[crate::types::KeySchemaElement] {
  154         -
        self.key_schema.as_deref().unwrap_or_default()
  155         -
    }
  156         -
    /// <p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
         168  +
        /* StructureGenerator.kt:169 */
         169  +
        self.key_schema
         170  +
            .as_deref()
         171  +
            /* StructureGenerator.kt:175 */
         172  +
            .unwrap_or_default()
         173  +
        /* StructureGenerator.kt:166 */
         174  +
    }
         175  +
    /// /* StructureGenerator.kt:231 */<p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
  157    176   
    /// <p>Each local secondary index in the array includes the following:</p>
  158    177   
    /// <ul>
  159    178   
    /// <li>
  160    179   
    /// <p><code>IndexName</code> - The name of the local secondary index. Must be unique only for this table.</p>
  161    180   
    /// <p></p></li>
  162    181   
    /// <li>
  163    182   
    /// <p><code>KeySchema</code> - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table.</p></li>
  164    183   
    /// <li>
  165    184   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  166    185   
    /// <ul>
  167    186   
    /// <li>
  168    187   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  169    188   
    /// <ul>
  170    189   
    /// <li>
  171    190   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  172    191   
    /// <li>
  173    192   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  174    193   
    /// <li>
  175    194   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  176    195   
    /// </ul></li>
  177    196   
    /// <li>
  178    197   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  179    198   
    /// </ul></li>
  180    199   
    /// </ul>
  181         -
    ///
  182         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.local_secondary_indexes.is_none()`.
         200  +
    /// /* StructureGenerator.kt:162 */
         201  +
    /// /* StructureGenerator.kt:163 */If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.local_secondary_indexes.is_none()`.
         202  +
    /* StructureGenerator.kt:166 */
  183    203   
    pub fn local_secondary_indexes(&self) -> &[crate::types::LocalSecondaryIndex] {
  184         -
        self.local_secondary_indexes.as_deref().unwrap_or_default()
         204  +
        /* StructureGenerator.kt:169 */
         205  +
        self.local_secondary_indexes
         206  +
            .as_deref()
         207  +
            /* StructureGenerator.kt:175 */
         208  +
            .unwrap_or_default()
         209  +
        /* StructureGenerator.kt:166 */
  185    210   
    }
  186         -
    /// <p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
         211  +
    /// /* StructureGenerator.kt:231 */<p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
  187    212   
    /// <ul>
  188    213   
    /// <li>
  189    214   
    /// <p><code>IndexName</code> - The name of the global secondary index. Must be unique only for this table.</p>
  190    215   
    /// <p></p></li>
  191    216   
    /// <li>
  192    217   
    /// <p><code>KeySchema</code> - Specifies the key schema for the global secondary index.</p></li>
  193    218   
    /// <li>
  194    219   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  195    220   
    /// <ul>
  196    221   
    /// <li>
  197    222   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  198    223   
    /// <ul>
  199    224   
    /// <li>
  200    225   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  201    226   
    /// <li>
  202    227   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  203    228   
    /// <li>
  204    229   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  205    230   
    /// </ul></li>
  206    231   
    /// <li>
  207    232   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  208    233   
    /// </ul></li>
  209    234   
    /// <li>
  210    235   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.</p></li>
  211    236   
    /// </ul>
  212         -
    ///
  213         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.global_secondary_indexes.is_none()`.
         237  +
    /// /* StructureGenerator.kt:162 */
         238  +
    /// /* StructureGenerator.kt:163 */If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.global_secondary_indexes.is_none()`.
         239  +
    /* StructureGenerator.kt:166 */
  214    240   
    pub fn global_secondary_indexes(&self) -> &[crate::types::GlobalSecondaryIndex] {
  215         -
        self.global_secondary_indexes.as_deref().unwrap_or_default()
         241  +
        /* StructureGenerator.kt:169 */
         242  +
        self.global_secondary_indexes
         243  +
            .as_deref()
         244  +
            /* StructureGenerator.kt:175 */
         245  +
            .unwrap_or_default()
         246  +
        /* StructureGenerator.kt:166 */
  216    247   
    }
  217         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
         248  +
    /// /* StructureGenerator.kt:231 */<p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
  218    249   
    /// <ul>
  219    250   
    /// <li>
  220    251   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  221    252   
    /// <li>
  222    253   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  223    254   
    /// </ul>
         255  +
    /* StructureGenerator.kt:166 */
  224    256   
    pub fn billing_mode(&self) -> ::std::option::Option<&crate::types::BillingMode> {
         257  +
        /* StructureGenerator.kt:170 */
  225    258   
        self.billing_mode.as_ref()
         259  +
        /* StructureGenerator.kt:166 */
  226    260   
    }
  227         -
    /// <p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
         261  +
    /// /* StructureGenerator.kt:231 */<p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
  228    262   
    /// <p>If you set BillingMode as <code>PROVISIONED</code>, you must specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, you cannot specify this property.</p>
  229    263   
    /// <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>
         264  +
    /* StructureGenerator.kt:166 */
  230    265   
    pub fn provisioned_throughput(&self) -> ::std::option::Option<&crate::types::ProvisionedThroughput> {
         266  +
        /* StructureGenerator.kt:170 */
  231    267   
        self.provisioned_throughput.as_ref()
         268  +
        /* StructureGenerator.kt:166 */
  232    269   
    }
  233         -
    /// <p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
         270  +
    /// /* StructureGenerator.kt:231 */<p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
  234    271   
    /// <ul>
  235    272   
    /// <li>
  236    273   
    /// <p><code>StreamEnabled</code> - Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false).</p></li>
  237    274   
    /// <li>
  238    275   
    /// <p><code>StreamViewType</code> - When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the table's stream. Valid values for <code>StreamViewType</code> are:</p>
  239    276   
    /// <ul>
  240    277   
    /// <li>
  241    278   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
  242    279   
    /// <li>
  243    280   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
  244    281   
    /// <li>
  245    282   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
  246    283   
    /// <li>
  247    284   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
  248    285   
    /// </ul></li>
  249    286   
    /// </ul>
         287  +
    /* StructureGenerator.kt:166 */
  250    288   
    pub fn stream_specification(&self) -> ::std::option::Option<&crate::types::StreamSpecification> {
         289  +
        /* StructureGenerator.kt:170 */
  251    290   
        self.stream_specification.as_ref()
         291  +
        /* StructureGenerator.kt:166 */
  252    292   
    }
  253         -
    /// <p>Represents the settings used to enable server-side encryption.</p>
         293  +
    /// /* StructureGenerator.kt:231 */<p>Represents the settings used to enable server-side encryption.</p>
         294  +
    /* StructureGenerator.kt:166 */
  254    295   
    pub fn sse_specification(&self) -> ::std::option::Option<&crate::types::SseSpecification> {
         296  +
        /* StructureGenerator.kt:170 */
  255    297   
        self.sse_specification.as_ref()
         298  +
        /* StructureGenerator.kt:166 */
  256    299   
    }
  257         -
    /// <p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
  258         -
    ///
  259         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
         300  +
    /// /* StructureGenerator.kt:231 */<p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         301  +
    /// /* StructureGenerator.kt:162 */
         302  +
    /// /* StructureGenerator.kt:163 */If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
         303  +
    /* StructureGenerator.kt:166 */
  260    304   
    pub fn tags(&self) -> &[crate::types::Tag] {
  261         -
        self.tags.as_deref().unwrap_or_default()
  262         -
    }
         305  +
        /* StructureGenerator.kt:169 */
         306  +
        self.tags
         307  +
            .as_deref()
         308  +
            /* StructureGenerator.kt:175 */
         309  +
            .unwrap_or_default()
         310  +
        /* StructureGenerator.kt:166 */
         311  +
    }
         312  +
    /* StructureGenerator.kt:135 */
  263    313   
}
         314  +
/* ClientCodegenVisitor.kt:237 */
  264    315   
impl CreateTableInput {
  265         -
    /// Creates a new builder-style object to manufacture [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
         316  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
         317  +
    /* BuilderGenerator.kt:175 */
  266    318   
    pub fn builder() -> crate::operation::create_table::builders::CreateTableInputBuilder {
         319  +
        /* BuilderGenerator.kt:176 */
  267    320   
        crate::operation::create_table::builders::CreateTableInputBuilder::default()
         321  +
        /* BuilderGenerator.kt:175 */
  268    322   
    }
         323  +
    /* ClientCodegenVisitor.kt:237 */
  269    324   
}
  270    325   
  271         -
/// A builder for [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
         326  +
/// /* BuilderGenerator.kt:342 */A builder for [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
         327  +
/* RustType.kt:516 */
  272    328   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         329  +
/* RustType.kt:516 */
  273    330   
#[non_exhaustive]
         331  +
/* BuilderGenerator.kt:345 */
  274    332   
pub struct CreateTableInputBuilder {
  275         -
    pub(crate) attribute_definitions: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>,
  276         -
    pub(crate) table_name: ::std::option::Option<::std::string::String>,
  277         -
    pub(crate) key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
         333  +
    /* BuilderGenerator.kt:275 */ pub(crate) attribute_definitions: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>,
         334  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_name: ::std::option::Option<::std::string::String>,
         335  +
    /* BuilderGenerator.kt:275 */ pub(crate) key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
         336  +
    /* BuilderGenerator.kt:275 */
  278    337   
    pub(crate) local_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndex>>,
         338  +
    /* BuilderGenerator.kt:275 */
  279    339   
    pub(crate) global_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndex>>,
  280         -
    pub(crate) billing_mode: ::std::option::Option<crate::types::BillingMode>,
  281         -
    pub(crate) provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughput>,
  282         -
    pub(crate) stream_specification: ::std::option::Option<crate::types::StreamSpecification>,
  283         -
    pub(crate) sse_specification: ::std::option::Option<crate::types::SseSpecification>,
         340  +
    /* BuilderGenerator.kt:275 */ pub(crate) billing_mode: ::std::option::Option<crate::types::BillingMode>,
         341  +
    /* BuilderGenerator.kt:275 */ pub(crate) provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughput>,
         342  +
    /* BuilderGenerator.kt:275 */ pub(crate) stream_specification: ::std::option::Option<crate::types::StreamSpecification>,
         343  +
    /* BuilderGenerator.kt:275 */ pub(crate) sse_specification: ::std::option::Option<crate::types::SseSpecification>,
         344  +
    /* BuilderGenerator.kt:275 */
  284    345   
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
         346  +
    /* BuilderGenerator.kt:345 */
  285    347   
}
         348  +
/* BuilderGenerator.kt:355 */
  286    349   
impl CreateTableInputBuilder {
  287         -
    /// Appends an item to `attribute_definitions`.
         350  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `attribute_definitions`.
         351  +
    /* BuilderGenerator.kt:411 */
  288    352   
    ///
  289         -
    /// To override the contents of this collection use [`set_attribute_definitions`](Self::set_attribute_definitions).
         353  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_attribute_definitions`](Self::set_attribute_definitions).
         354  +
    /* BuilderGenerator.kt:413 */
  290    355   
    ///
  291         -
    /// <p>An array of attributes that describe the key schema for the table and indexes.</p>
         356  +
    /// /* BuilderGenerator.kt:414 */<p>An array of attributes that describe the key schema for the table and indexes.</p>
         357  +
    /* BuilderGenerator.kt:418 */
  292    358   
    pub fn attribute_definitions(mut self, input: crate::types::AttributeDefinition) -> Self {
         359  +
        /* BuilderGenerator.kt:419 */
  293    360   
        let mut v = self.attribute_definitions.unwrap_or_default();
  294    361   
        v.push(input);
  295    362   
        self.attribute_definitions = ::std::option::Option::Some(v);
  296    363   
        self
         364  +
        /* BuilderGenerator.kt:418 */
  297    365   
    }
  298         -
    /// <p>An array of attributes that describe the key schema for the table and indexes.</p>
         366  +
    /// /* BuilderGenerator.kt:312 */<p>An array of attributes that describe the key schema for the table and indexes.</p>
         367  +
    /* BuilderGenerator.kt:314 */
  299    368   
    pub fn set_attribute_definitions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>) -> Self {
         369  +
        /* BuilderGenerator.kt:315 */
  300    370   
        self.attribute_definitions = input;
  301    371   
        self
         372  +
        /* BuilderGenerator.kt:314 */
  302    373   
    }
  303         -
    /// <p>An array of attributes that describe the key schema for the table and indexes.</p>
         374  +
    /// /* BuilderGenerator.kt:334 */<p>An array of attributes that describe the key schema for the table and indexes.</p>
         375  +
    /* BuilderGenerator.kt:336 */
  304    376   
    pub fn get_attribute_definitions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>> {
         377  +
        /* BuilderGenerator.kt:337 */
  305    378   
        &self.attribute_definitions
         379  +
        /* BuilderGenerator.kt:336 */
  306    380   
    }
  307         -
    /// <p>The name of the table to create.</p>
  308         -
    /// This field is required.
         381  +
    /// /* BuilderGenerator.kt:286 */<p>The name of the table to create.</p>
         382  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         383  +
    /* BuilderGenerator.kt:291 */
  309    384   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         385  +
        /* BuilderGenerator.kt:292 */
  310    386   
        self.table_name = ::std::option::Option::Some(input.into());
         387  +
        /* BuilderGenerator.kt:293 */
  311    388   
        self
         389  +
        /* BuilderGenerator.kt:291 */
  312    390   
    }
  313         -
    /// <p>The name of the table to create.</p>
         391  +
    /// /* BuilderGenerator.kt:312 */<p>The name of the table to create.</p>
         392  +
    /* BuilderGenerator.kt:314 */
  314    393   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         394  +
        /* BuilderGenerator.kt:315 */
  315    395   
        self.table_name = input;
  316    396   
        self
         397  +
        /* BuilderGenerator.kt:314 */
  317    398   
    }
  318         -
    /// <p>The name of the table to create.</p>
         399  +
    /// /* BuilderGenerator.kt:334 */<p>The name of the table to create.</p>
         400  +
    /* BuilderGenerator.kt:336 */
  319    401   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
         402  +
        /* BuilderGenerator.kt:337 */
  320    403   
        &self.table_name
         404  +
        /* BuilderGenerator.kt:336 */
  321    405   
    }
  322         -
    /// Appends an item to `key_schema`.
         406  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `key_schema`.
         407  +
    /* BuilderGenerator.kt:411 */
  323    408   
    ///
  324         -
    /// To override the contents of this collection use [`set_key_schema`](Self::set_key_schema).
         409  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_key_schema`](Self::set_key_schema).
         410  +
    /* BuilderGenerator.kt:413 */
  325    411   
    ///
  326         -
    /// <p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         412  +
    /// /* BuilderGenerator.kt:414 */<p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
  327    413   
    /// <p>Each <code>KeySchemaElement</code> in the array is composed of:</p>
  328    414   
    /// <ul>
  329    415   
    /// <li>
  330    416   
    /// <p><code>AttributeName</code> - The name of this key attribute.</p></li>
  331    417   
    /// <li>
  332    418   
    /// <p><code>KeyType</code> - The role that the key attribute will assume:</p>
  333    419   
    /// <ul>
  334    420   
    /// <li>
  335    421   
    /// <p><code>HASH</code> - partition key</p></li>
  336    422   
    /// <li>
  337    423   
    /// <p><code>RANGE</code> - sort key</p></li>
  338    424   
    /// </ul></li>
  339    425   
    /// </ul><note>
  340    426   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from the DynamoDB usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  341    427   
    /// <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>
  342    428   
    /// </note>
  343    429   
    /// <p>For a simple primary key (partition key), you must provide exactly one element with a <code>KeyType</code> of <code>HASH</code>.</p>
  344    430   
    /// <p>For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a <code>KeyType</code> of <code>HASH</code>, and the second element must have a <code>KeyType</code> of <code>RANGE</code>.</p>
  345    431   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         432  +
    /* BuilderGenerator.kt:418 */
  346    433   
    pub fn key_schema(mut self, input: crate::types::KeySchemaElement) -> Self {
         434  +
        /* BuilderGenerator.kt:419 */
  347    435   
        let mut v = self.key_schema.unwrap_or_default();
  348    436   
        v.push(input);
  349    437   
        self.key_schema = ::std::option::Option::Some(v);
  350    438   
        self
         439  +
        /* BuilderGenerator.kt:418 */
  351    440   
    }
  352         -
    /// <p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         441  +
    /// /* BuilderGenerator.kt:312 */<p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
  353    442   
    /// <p>Each <code>KeySchemaElement</code> in the array is composed of:</p>
  354    443   
    /// <ul>
  355    444   
    /// <li>
  356    445   
    /// <p><code>AttributeName</code> - The name of this key attribute.</p></li>
  357    446   
    /// <li>
  358    447   
    /// <p><code>KeyType</code> - The role that the key attribute will assume:</p>
  359    448   
    /// <ul>
  360    449   
    /// <li>
  361    450   
    /// <p><code>HASH</code> - partition key</p></li>
  362    451   
    /// <li>
  363    452   
    /// <p><code>RANGE</code> - sort key</p></li>
  364    453   
    /// </ul></li>
  365    454   
    /// </ul><note>
  366    455   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from the DynamoDB usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  367    456   
    /// <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>
  368    457   
    /// </note>
  369    458   
    /// <p>For a simple primary key (partition key), you must provide exactly one element with a <code>KeyType</code> of <code>HASH</code>.</p>
  370    459   
    /// <p>For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a <code>KeyType</code> of <code>HASH</code>, and the second element must have a <code>KeyType</code> of <code>RANGE</code>.</p>
  371    460   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         461  +
    /* BuilderGenerator.kt:314 */
  372    462   
    pub fn set_key_schema(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>) -> Self {
         463  +
        /* BuilderGenerator.kt:315 */
  373    464   
        self.key_schema = input;
  374    465   
        self
         466  +
        /* BuilderGenerator.kt:314 */
  375    467   
    }
  376         -
    /// <p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         468  +
    /// /* BuilderGenerator.kt:334 */<p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
  377    469   
    /// <p>Each <code>KeySchemaElement</code> in the array is composed of:</p>
  378    470   
    /// <ul>
  379    471   
    /// <li>
  380    472   
    /// <p><code>AttributeName</code> - The name of this key attribute.</p></li>
  381    473   
    /// <li>
  382    474   
    /// <p><code>KeyType</code> - The role that the key attribute will assume:</p>
  383    475   
    /// <ul>
  384    476   
    /// <li>
  385    477   
    /// <p><code>HASH</code> - partition key</p></li>
  386    478   
    /// <li>
  387    479   
    /// <p><code>RANGE</code> - sort key</p></li>
  388    480   
    /// </ul></li>
  389    481   
    /// </ul><note>
  390    482   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from the DynamoDB usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  391    483   
    /// <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>
  392    484   
    /// </note>
  393    485   
    /// <p>For a simple primary key (partition key), you must provide exactly one element with a <code>KeyType</code> of <code>HASH</code>.</p>
  394    486   
    /// <p>For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a <code>KeyType</code> of <code>HASH</code>, and the second element must have a <code>KeyType</code> of <code>RANGE</code>.</p>
  395    487   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         488  +
    /* BuilderGenerator.kt:336 */
  396    489   
    pub fn get_key_schema(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>> {
         490  +
        /* BuilderGenerator.kt:337 */
  397    491   
        &self.key_schema
         492  +
        /* BuilderGenerator.kt:336 */
  398    493   
    }
  399         -
    /// Appends an item to `local_secondary_indexes`.
         494  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `local_secondary_indexes`.
         495  +
    /* BuilderGenerator.kt:411 */
  400    496   
    ///
  401         -
    /// To override the contents of this collection use [`set_local_secondary_indexes`](Self::set_local_secondary_indexes).
         497  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_local_secondary_indexes`](Self::set_local_secondary_indexes).
         498  +
    /* BuilderGenerator.kt:413 */
  402    499   
    ///
  403         -
    /// <p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
         500  +
    /// /* BuilderGenerator.kt:414 */<p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
  404    501   
    /// <p>Each local secondary index in the array includes the following:</p>
  405    502   
    /// <ul>
  406    503   
    /// <li>
  407    504   
    /// <p><code>IndexName</code> - The name of the local secondary index. Must be unique only for this table.</p>
  408    505   
    /// <p></p></li>
  409    506   
    /// <li>
  410    507   
    /// <p><code>KeySchema</code> - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table.</p></li>
  411    508   
    /// <li>
  412    509   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  413    510   
    /// <ul>
  414    511   
    /// <li>
  415    512   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  416    513   
    /// <ul>
  417    514   
    /// <li>
  418    515   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  419    516   
    /// <li>
  420    517   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  421    518   
    /// <li>
  422    519   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  423    520   
    /// </ul></li>
  424    521   
    /// <li>
  425    522   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  426    523   
    /// </ul></li>
  427    524   
    /// </ul>
         525  +
    /* BuilderGenerator.kt:418 */
  428    526   
    pub fn local_secondary_indexes(mut self, input: crate::types::LocalSecondaryIndex) -> Self {
         527  +
        /* BuilderGenerator.kt:419 */
  429    528   
        let mut v = self.local_secondary_indexes.unwrap_or_default();
  430    529   
        v.push(input);
  431    530   
        self.local_secondary_indexes = ::std::option::Option::Some(v);
  432    531   
        self
         532  +
        /* BuilderGenerator.kt:418 */
  433    533   
    }
  434         -
    /// <p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
         534  +
    /// /* BuilderGenerator.kt:312 */<p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
  435    535   
    /// <p>Each local secondary index in the array includes the following:</p>
  436    536   
    /// <ul>
  437    537   
    /// <li>
  438    538   
    /// <p><code>IndexName</code> - The name of the local secondary index. Must be unique only for this table.</p>
  439    539   
    /// <p></p></li>
  440    540   
    /// <li>
  441    541   
    /// <p><code>KeySchema</code> - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table.</p></li>
  442    542   
    /// <li>
  443    543   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  444    544   
    /// <ul>
  445    545   
    /// <li>
  446    546   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  447    547   
    /// <ul>
  448    548   
    /// <li>
  449    549   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  450    550   
    /// <li>
  451    551   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  452    552   
    /// <li>
  453    553   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  454    554   
    /// </ul></li>
  455    555   
    /// <li>
  456    556   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  457    557   
    /// </ul></li>
  458    558   
    /// </ul>
         559  +
    /* BuilderGenerator.kt:314 */
  459    560   
    pub fn set_local_secondary_indexes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndex>>) -> Self {
         561  +
        /* BuilderGenerator.kt:315 */
  460    562   
        self.local_secondary_indexes = input;
  461    563   
        self
         564  +
        /* BuilderGenerator.kt:314 */
  462    565   
    }
  463         -
    /// <p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
         566  +
    /// /* BuilderGenerator.kt:334 */<p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
  464    567   
    /// <p>Each local secondary index in the array includes the following:</p>
  465    568   
    /// <ul>
  466    569   
    /// <li>
  467    570   
    /// <p><code>IndexName</code> - The name of the local secondary index. Must be unique only for this table.</p>
  468    571   
    /// <p></p></li>
  469    572   
    /// <li>
  470    573   
    /// <p><code>KeySchema</code> - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table.</p></li>
  471    574   
    /// <li>
  472    575   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  473    576   
    /// <ul>
  474    577   
    /// <li>
  475    578   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  476    579   
    /// <ul>
  477    580   
    /// <li>
  478    581   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  479    582   
    /// <li>
  480    583   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  481    584   
    /// <li>
  482    585   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  483    586   
    /// </ul></li>
  484    587   
    /// <li>
  485    588   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  486    589   
    /// </ul></li>
  487    590   
    /// </ul>
         591  +
    /* BuilderGenerator.kt:336 */
  488    592   
    pub fn get_local_secondary_indexes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndex>> {
         593  +
        /* BuilderGenerator.kt:337 */
  489    594   
        &self.local_secondary_indexes
         595  +
        /* BuilderGenerator.kt:336 */
  490    596   
    }
  491         -
    /// Appends an item to `global_secondary_indexes`.
         597  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `global_secondary_indexes`.
         598  +
    /* BuilderGenerator.kt:411 */
  492    599   
    ///
  493         -
    /// To override the contents of this collection use [`set_global_secondary_indexes`](Self::set_global_secondary_indexes).
         600  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_global_secondary_indexes`](Self::set_global_secondary_indexes).
         601  +
    /* BuilderGenerator.kt:413 */
  494    602   
    ///
  495         -
    /// <p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
         603  +
    /// /* BuilderGenerator.kt:414 */<p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
  496    604   
    /// <ul>
  497    605   
    /// <li>
  498    606   
    /// <p><code>IndexName</code> - The name of the global secondary index. Must be unique only for this table.</p>
  499    607   
    /// <p></p></li>
  500    608   
    /// <li>
  501    609   
    /// <p><code>KeySchema</code> - Specifies the key schema for the global secondary index.</p></li>
  502    610   
    /// <li>
  503    611   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  504    612   
    /// <ul>
  505    613   
    /// <li>
  506    614   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  507    615   
    /// <ul>
  508    616   
    /// <li>
  509    617   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  510    618   
    /// <li>
  511    619   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  512    620   
    /// <li>
  513    621   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  514    622   
    /// </ul></li>
  515    623   
    /// <li>
  516    624   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  517    625   
    /// </ul></li>
  518    626   
    /// <li>
  519    627   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.</p></li>
  520    628   
    /// </ul>
         629  +
    /* BuilderGenerator.kt:418 */
  521    630   
    pub fn global_secondary_indexes(mut self, input: crate::types::GlobalSecondaryIndex) -> Self {
         631  +
        /* BuilderGenerator.kt:419 */
  522    632   
        let mut v = self.global_secondary_indexes.unwrap_or_default();
  523    633   
        v.push(input);
  524    634   
        self.global_secondary_indexes = ::std::option::Option::Some(v);
  525    635   
        self
         636  +
        /* BuilderGenerator.kt:418 */
  526    637   
    }
  527         -
    /// <p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
         638  +
    /// /* BuilderGenerator.kt:312 */<p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
  528    639   
    /// <ul>
  529    640   
    /// <li>
  530    641   
    /// <p><code>IndexName</code> - The name of the global secondary index. Must be unique only for this table.</p>
  531    642   
    /// <p></p></li>
  532    643   
    /// <li>
  533    644   
    /// <p><code>KeySchema</code> - Specifies the key schema for the global secondary index.</p></li>
  534    645   
    /// <li>
  535    646   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  536    647   
    /// <ul>
  537    648   
    /// <li>
  538    649   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  539    650   
    /// <ul>
  540    651   
    /// <li>
  541    652   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  542    653   
    /// <li>
  543    654   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  544    655   
    /// <li>
  545    656   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  546    657   
    /// </ul></li>
  547    658   
    /// <li>
  548    659   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  549    660   
    /// </ul></li>
  550    661   
    /// <li>
  551    662   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.</p></li>
  552    663   
    /// </ul>
         664  +
    /* BuilderGenerator.kt:314 */
  553    665   
    pub fn set_global_secondary_indexes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndex>>) -> Self {
         666  +
        /* BuilderGenerator.kt:315 */
  554    667   
        self.global_secondary_indexes = input;
  555    668   
        self
         669  +
        /* BuilderGenerator.kt:314 */
  556    670   
    }
  557         -
    /// <p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
         671  +
    /// /* BuilderGenerator.kt:334 */<p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
  558    672   
    /// <ul>
  559    673   
    /// <li>
  560    674   
    /// <p><code>IndexName</code> - The name of the global secondary index. Must be unique only for this table.</p>
  561    675   
    /// <p></p></li>
  562    676   
    /// <li>
  563    677   
    /// <p><code>KeySchema</code> - Specifies the key schema for the global secondary index.</p></li>
  564    678   
    /// <li>
  565    679   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  566    680   
    /// <ul>
  567    681   
    /// <li>
  568    682   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  569    683   
    /// <ul>
  570    684   
    /// <li>
  571    685   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  572    686   
    /// <li>
  573    687   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  574    688   
    /// <li>
  575    689   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  576    690   
    /// </ul></li>
  577    691   
    /// <li>
  578    692   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  579    693   
    /// </ul></li>
  580    694   
    /// <li>
  581    695   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.</p></li>
  582    696   
    /// </ul>
         697  +
    /* BuilderGenerator.kt:336 */
  583    698   
    pub fn get_global_secondary_indexes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndex>> {
         699  +
        /* BuilderGenerator.kt:337 */
  584    700   
        &self.global_secondary_indexes
         701  +
        /* BuilderGenerator.kt:336 */
  585    702   
    }
  586         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
         703  +
    /// /* BuilderGenerator.kt:286 */<p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
  587    704   
    /// <ul>
  588    705   
    /// <li>
  589    706   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  590    707   
    /// <li>
  591    708   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  592    709   
    /// </ul>
         710  +
    /* BuilderGenerator.kt:291 */
  593    711   
    pub fn billing_mode(mut self, input: crate::types::BillingMode) -> Self {
         712  +
        /* BuilderGenerator.kt:292 */
  594    713   
        self.billing_mode = ::std::option::Option::Some(input);
         714  +
        /* BuilderGenerator.kt:293 */
  595    715   
        self
         716  +
        /* BuilderGenerator.kt:291 */
  596    717   
    }
  597         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
         718  +
    /// /* BuilderGenerator.kt:312 */<p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
  598    719   
    /// <ul>
  599    720   
    /// <li>
  600    721   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  601    722   
    /// <li>
  602    723   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  603    724   
    /// </ul>
         725  +
    /* BuilderGenerator.kt:314 */
  604    726   
    pub fn set_billing_mode(mut self, input: ::std::option::Option<crate::types::BillingMode>) -> Self {
         727  +
        /* BuilderGenerator.kt:315 */
  605    728   
        self.billing_mode = input;
  606    729   
        self
         730  +
        /* BuilderGenerator.kt:314 */
  607    731   
    }
  608         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
         732  +
    /// /* BuilderGenerator.kt:334 */<p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
  609    733   
    /// <ul>
  610    734   
    /// <li>
  611    735   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  612    736   
    /// <li>
  613    737   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  614    738   
    /// </ul>
         739  +
    /* BuilderGenerator.kt:336 */
  615    740   
    pub fn get_billing_mode(&self) -> &::std::option::Option<crate::types::BillingMode> {
         741  +
        /* BuilderGenerator.kt:337 */
  616    742   
        &self.billing_mode
         743  +
        /* BuilderGenerator.kt:336 */
  617    744   
    }
  618         -
    /// <p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
         745  +
    /// /* BuilderGenerator.kt:286 */<p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
  619    746   
    /// <p>If you set BillingMode as <code>PROVISIONED</code>, you must specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, you cannot specify this property.</p>
  620    747   
    /// <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>
         748  +
    /* BuilderGenerator.kt:291 */
  621    749   
    pub fn provisioned_throughput(mut self, input: crate::types::ProvisionedThroughput) -> Self {
         750  +
        /* BuilderGenerator.kt:292 */
  622    751   
        self.provisioned_throughput = ::std::option::Option::Some(input);
         752  +
        /* BuilderGenerator.kt:293 */
  623    753   
        self
         754  +
        /* BuilderGenerator.kt:291 */
  624    755   
    }
  625         -
    /// <p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
         756  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
  626    757   
    /// <p>If you set BillingMode as <code>PROVISIONED</code>, you must specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, you cannot specify this property.</p>
  627    758   
    /// <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>
         759  +
    /* BuilderGenerator.kt:314 */
  628    760   
    pub fn set_provisioned_throughput(mut self, input: ::std::option::Option<crate::types::ProvisionedThroughput>) -> Self {
         761  +
        /* BuilderGenerator.kt:315 */
  629    762   
        self.provisioned_throughput = input;
  630    763   
        self
         764  +
        /* BuilderGenerator.kt:314 */
  631    765   
    }
  632         -
    /// <p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
         766  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
  633    767   
    /// <p>If you set BillingMode as <code>PROVISIONED</code>, you must specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, you cannot specify this property.</p>
  634    768   
    /// <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>
         769  +
    /* BuilderGenerator.kt:336 */
  635    770   
    pub fn get_provisioned_throughput(&self) -> &::std::option::Option<crate::types::ProvisionedThroughput> {
         771  +
        /* BuilderGenerator.kt:337 */
  636    772   
        &self.provisioned_throughput
         773  +
        /* BuilderGenerator.kt:336 */
  637    774   
    }
  638         -
    /// <p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
         775  +
    /// /* BuilderGenerator.kt:286 */<p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
  639    776   
    /// <ul>
  640    777   
    /// <li>
  641    778   
    /// <p><code>StreamEnabled</code> - Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false).</p></li>
  642    779   
    /// <li>
  643    780   
    /// <p><code>StreamViewType</code> - When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the table's stream. Valid values for <code>StreamViewType</code> are:</p>
  644    781   
    /// <ul>
  645    782   
    /// <li>
  646    783   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
  647    784   
    /// <li>
  648    785   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
  649    786   
    /// <li>
  650    787   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
  651    788   
    /// <li>
  652    789   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
  653    790   
    /// </ul></li>
  654    791   
    /// </ul>
         792  +
    /* BuilderGenerator.kt:291 */
  655    793   
    pub fn stream_specification(mut self, input: crate::types::StreamSpecification) -> Self {
         794  +
        /* BuilderGenerator.kt:292 */
  656    795   
        self.stream_specification = ::std::option::Option::Some(input);
         796  +
        /* BuilderGenerator.kt:293 */
  657    797   
        self
         798  +
        /* BuilderGenerator.kt:291 */
  658    799   
    }
  659         -
    /// <p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
         800  +
    /// /* BuilderGenerator.kt:312 */<p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
  660    801   
    /// <ul>
  661    802   
    /// <li>
  662    803   
    /// <p><code>StreamEnabled</code> - Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false).</p></li>
  663    804   
    /// <li>
  664    805   
    /// <p><code>StreamViewType</code> - When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the table's stream. Valid values for <code>StreamViewType</code> are:</p>
  665    806   
    /// <ul>
  666    807   
    /// <li>
  667    808   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
  668    809   
    /// <li>
  669    810   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
  670    811   
    /// <li>
  671    812   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
  672    813   
    /// <li>
  673    814   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
  674    815   
    /// </ul></li>
  675    816   
    /// </ul>
         817  +
    /* BuilderGenerator.kt:314 */
  676    818   
    pub fn set_stream_specification(mut self, input: ::std::option::Option<crate::types::StreamSpecification>) -> Self {
         819  +
        /* BuilderGenerator.kt:315 */
  677    820   
        self.stream_specification = input;
  678    821   
        self
         822  +
        /* BuilderGenerator.kt:314 */
  679    823   
    }
  680         -
    /// <p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
         824  +
    /// /* BuilderGenerator.kt:334 */<p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
  681    825   
    /// <ul>
  682    826   
    /// <li>
  683    827   
    /// <p><code>StreamEnabled</code> - Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false).</p></li>
  684    828   
    /// <li>
  685    829   
    /// <p><code>StreamViewType</code> - When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the table's stream. Valid values for <code>StreamViewType</code> are:</p>
  686    830   
    /// <ul>
  687    831   
    /// <li>
  688    832   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
  689    833   
    /// <li>
  690    834   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
  691    835   
    /// <li>
  692    836   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
  693    837   
    /// <li>
  694    838   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
  695    839   
    /// </ul></li>
  696    840   
    /// </ul>
         841  +
    /* BuilderGenerator.kt:336 */
  697    842   
    pub fn get_stream_specification(&self) -> &::std::option::Option<crate::types::StreamSpecification> {
         843  +
        /* BuilderGenerator.kt:337 */
  698    844   
        &self.stream_specification
         845  +
        /* BuilderGenerator.kt:336 */
  699    846   
    }
  700         -
    /// <p>Represents the settings used to enable server-side encryption.</p>
         847  +
    /// /* BuilderGenerator.kt:286 */<p>Represents the settings used to enable server-side encryption.</p>
         848  +
    /* BuilderGenerator.kt:291 */
  701    849   
    pub fn sse_specification(mut self, input: crate::types::SseSpecification) -> Self {
         850  +
        /* BuilderGenerator.kt:292 */
  702    851   
        self.sse_specification = ::std::option::Option::Some(input);
         852  +
        /* BuilderGenerator.kt:293 */
  703    853   
        self
         854  +
        /* BuilderGenerator.kt:291 */
  704    855   
    }
  705         -
    /// <p>Represents the settings used to enable server-side encryption.</p>
         856  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the settings used to enable server-side encryption.</p>
         857  +
    /* BuilderGenerator.kt:314 */
  706    858   
    pub fn set_sse_specification(mut self, input: ::std::option::Option<crate::types::SseSpecification>) -> Self {
         859  +
        /* BuilderGenerator.kt:315 */
  707    860   
        self.sse_specification = input;
  708    861   
        self
         862  +
        /* BuilderGenerator.kt:314 */
  709    863   
    }
  710         -
    /// <p>Represents the settings used to enable server-side encryption.</p>
         864  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the settings used to enable server-side encryption.</p>
         865  +
    /* BuilderGenerator.kt:336 */
  711    866   
    pub fn get_sse_specification(&self) -> &::std::option::Option<crate::types::SseSpecification> {
         867  +
        /* BuilderGenerator.kt:337 */
  712    868   
        &self.sse_specification
         869  +
        /* BuilderGenerator.kt:336 */
  713    870   
    }
  714         -
    /// Appends an item to `tags`.
         871  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `tags`.
         872  +
    /* BuilderGenerator.kt:411 */
  715    873   
    ///
  716         -
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
         874  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_tags`](Self::set_tags).
         875  +
    /* BuilderGenerator.kt:413 */
  717    876   
    ///
  718         -
    /// <p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         877  +
    /// /* BuilderGenerator.kt:414 */<p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         878  +
    /* BuilderGenerator.kt:418 */
  719    879   
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
         880  +
        /* BuilderGenerator.kt:419 */
  720    881   
        let mut v = self.tags.unwrap_or_default();
  721    882   
        v.push(input);
  722    883   
        self.tags = ::std::option::Option::Some(v);
  723    884   
        self
         885  +
        /* BuilderGenerator.kt:418 */
  724    886   
    }
  725         -
    /// <p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         887  +
    /// /* BuilderGenerator.kt:312 */<p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         888  +
    /* BuilderGenerator.kt:314 */
  726    889   
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
         890  +
        /* BuilderGenerator.kt:315 */
  727    891   
        self.tags = input;
  728    892   
        self
         893  +
        /* BuilderGenerator.kt:314 */
  729    894   
    }
  730         -
    /// <p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         895  +
    /// /* BuilderGenerator.kt:334 */<p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         896  +
    /* BuilderGenerator.kt:336 */
  731    897   
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
         898  +
        /* BuilderGenerator.kt:337 */
  732    899   
        &self.tags
         900  +
        /* BuilderGenerator.kt:336 */
  733    901   
    }
  734         -
    /// Consumes the builder and constructs a [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
         902  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
         903  +
    /* BuilderGenerator.kt:253 */
  735    904   
    pub fn build(self) -> ::std::result::Result<crate::operation::create_table::CreateTableInput, ::aws_smithy_types::error::operation::BuildError> {
  736         -
        ::std::result::Result::Ok(crate::operation::create_table::CreateTableInput {
  737         -
            attribute_definitions: self.attribute_definitions,
         905  +
        /* BuilderGenerator.kt:254 */
         906  +
        ::std::result::Result::Ok(
         907  +
            /* BuilderGenerator.kt:477 */
         908  +
            crate::operation::create_table::CreateTableInput {
         909  +
                /* BuilderGenerator.kt:481 */ attribute_definitions: self.attribute_definitions,
         910  +
                /* BuilderGenerator.kt:481 */
  738    911   
                table_name: self.table_name,
         912  +
                /* BuilderGenerator.kt:481 */
  739    913   
                key_schema: self.key_schema,
         914  +
                /* BuilderGenerator.kt:481 */
  740    915   
                local_secondary_indexes: self.local_secondary_indexes,
         916  +
                /* BuilderGenerator.kt:481 */
  741    917   
                global_secondary_indexes: self.global_secondary_indexes,
         918  +
                /* BuilderGenerator.kt:481 */
  742    919   
                billing_mode: self.billing_mode,
         920  +
                /* BuilderGenerator.kt:481 */
  743    921   
                provisioned_throughput: self.provisioned_throughput,
         922  +
                /* BuilderGenerator.kt:481 */
  744    923   
                stream_specification: self.stream_specification,
         924  +
                /* BuilderGenerator.kt:481 */
  745    925   
                sse_specification: self.sse_specification,
         926  +
                /* BuilderGenerator.kt:481 */
  746    927   
                tags: self.tags,
  747         -
        })
         928  +
                /* BuilderGenerator.kt:477 */
         929  +
            }, /* BuilderGenerator.kt:254 */
         930  +
        )
         931  +
        /* BuilderGenerator.kt:253 */
  748    932   
    }
         933  +
    /* BuilderGenerator.kt:355 */
  749    934   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/create_table/_create_table_output.rs

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

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

@@ -1,1 +555,597 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* CodegenDelegator.kt:255 */
    2      3   
pub use crate::operation::create_table::_create_table_output::CreateTableOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::create_table::_create_table_input::CreateTableInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::create_table::builders::CreateTableInputBuilder {
    7     10   
    /// Sends a request with this input using the given client.
    8     11   
    pub async fn send_with(
    9     12   
        self,
   10     13   
        client: &crate::Client,
   11     14   
    ) -> ::std::result::Result<
   12     15   
        crate::operation::create_table::CreateTableOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::create_table::CreateTableError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.create_table();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `CreateTable`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `CreateTable`.
   24     27   
///
   25         -
/// <p>The <code>CreateTable</code> operation adds a new table to your account. In an AWS account, table names must be unique within each Region. That is, you can have two tables with same name if you create the tables in different Regions.</p>
          28  +
/// /* FluentBuilderGenerator.kt:130 */<p>The <code>CreateTable</code> operation adds a new table to your account. In an AWS account, table names must be unique within each Region. That is, you can have two tables with same name if you create the tables in different Regions.</p>
   26     29   
/// <p><code>CreateTable</code> is an asynchronous operation. Upon receiving a <code>CreateTable</code> request, DynamoDB immediately returns a response with a <code>TableStatus</code> of <code>CREATING</code>. After the table is created, DynamoDB sets the <code>TableStatus</code> to <code>ACTIVE</code>. You can perform read and write operations only on an <code>ACTIVE</code> table.</p>
   27     30   
/// <p>You can optionally define secondary indexes on the new table, as part of the <code>CreateTable</code> operation. If you want to create multiple tables with secondary indexes on them, you must create the tables sequentially. Only one table with secondary indexes can be in the <code>CREATING</code> state at any given time.</p>
   28     31   
/// <p>You can use the <code>DescribeTable</code> action to check the table status.</p>
          32  +
/* RustType.kt:516 */
   29     33   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          34  +
/* FluentBuilderGenerator.kt:270 */
   30     35   
pub struct CreateTableFluentBuilder {
   31     36   
    handle: ::std::sync::Arc<crate::client::Handle>,
   32     37   
    inner: crate::operation::create_table::builders::CreateTableInputBuilder,
   33     38   
    config_override: ::std::option::Option<crate::config::Builder>,
   34     39   
}
          40  +
/* FluentBuilderGenerator.kt:381 */
   35     41   
impl
   36     42   
    crate::client::customize::internal::CustomizableSend<
   37     43   
        crate::operation::create_table::CreateTableOutput,
   38     44   
        crate::operation::create_table::CreateTableError,
   39     45   
    > for CreateTableFluentBuilder
   40     46   
{
   41     47   
    fn send(
   42     48   
        self,
   43     49   
        config_override: crate::config::Builder,
   44     50   
    ) -> crate::client::customize::internal::BoxFuture<
   45     51   
        crate::client::customize::internal::SendResult<
   46     52   
            crate::operation::create_table::CreateTableOutput,
   47     53   
            crate::operation::create_table::CreateTableError,
   48     54   
        >,
   49     55   
    > {
   50     56   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   51     57   
    }
   52     58   
}
          59  +
/* FluentBuilderGenerator.kt:282 */
   53     60   
impl CreateTableFluentBuilder {
          61  +
    /* FluentBuilderGenerator.kt:288 */
   54     62   
    /// Creates a new `CreateTableFluentBuilder`.
   55     63   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   56     64   
        Self {
   57     65   
            handle,
   58     66   
            inner: ::std::default::Default::default(),
   59     67   
            config_override: ::std::option::Option::None,
   60     68   
        }
   61     69   
    }
          70  +
    /* FluentBuilderGenerator.kt:301 */
   62     71   
    /// Access the CreateTable as a reference.
   63     72   
    pub fn as_input(&self) -> &crate::operation::create_table::builders::CreateTableInputBuilder {
   64     73   
        &self.inner
   65     74   
    }
          75  +
    /* FluentBuilderGenerator.kt:145 */
   66     76   
    /// Sends the request and returns the response.
   67     77   
    ///
   68     78   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   69     79   
    /// can be matched against.
   70     80   
    ///
   71     81   
    /// By default, any retryable failures will be retried twice. Retry behavior
   72     82   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   73     83   
    /// set when configuring the client.
   74     84   
    pub async fn send(
   75     85   
        self,
   76     86   
    ) -> ::std::result::Result<
   77     87   
        crate::operation::create_table::CreateTableOutput,
   78     88   
        ::aws_smithy_runtime_api::client::result::SdkError<
   79     89   
            crate::operation::create_table::CreateTableError,
   80     90   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   81     91   
        >,
   82     92   
    > {
   83     93   
        let input = self
   84     94   
            .inner
   85     95   
            .build()
   86     96   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   87     97   
        let runtime_plugins = crate::operation::create_table::CreateTable::operation_runtime_plugins(
   88     98   
            self.handle.runtime_plugins.clone(),
   89     99   
            &self.handle.conf,
   90    100   
            self.config_override,
   91    101   
        );
   92    102   
        crate::operation::create_table::CreateTable::orchestrate(&runtime_plugins, input).await
   93    103   
    }
   94    104   
   95    105   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
   96    106   
    pub fn customize(
   97    107   
        self,
   98    108   
    ) -> crate::client::customize::CustomizableOperation<
   99    109   
        crate::operation::create_table::CreateTableOutput,
  100    110   
        crate::operation::create_table::CreateTableError,
  101    111   
        Self,
  102    112   
    > {
  103    113   
        crate::client::customize::CustomizableOperation::new(self)
  104    114   
    }
         115  +
    /* FluentBuilderGenerator.kt:315 */
  105    116   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  106    117   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  107    118   
        self
  108    119   
    }
  109    120   
  110    121   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  111    122   
        self.config_override = config_override;
  112    123   
        self
  113    124   
    }
  114         -
    ///
         125  +
    /// /* FluentBuilderGenerator.kt:436 */
  115    126   
    /// Appends an item to `AttributeDefinitions`.
  116    127   
    ///
  117    128   
    /// To override the contents of this collection use [`set_attribute_definitions`](Self::set_attribute_definitions).
  118    129   
    ///
  119         -
    /// <p>An array of attributes that describe the key schema for the table and indexes.</p>
         130  +
    /// /* FluentBuilderGenerator.kt:443 */<p>An array of attributes that describe the key schema for the table and indexes.</p>
         131  +
    /* FluentBuilderGenerator.kt:446 */
  120    132   
    pub fn attribute_definitions(mut self, input: crate::types::AttributeDefinition) -> Self {
  121    133   
        self.inner = self.inner.attribute_definitions(input);
  122    134   
        self
  123    135   
    }
  124         -
    /// <p>An array of attributes that describe the key schema for the table and indexes.</p>
         136  +
    /// /* FluentBuilderGenerator.kt:498 */<p>An array of attributes that describe the key schema for the table and indexes.</p>
         137  +
    /* FluentBuilderGenerator.kt:500 */
  125    138   
    pub fn set_attribute_definitions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>) -> Self {
  126    139   
        self.inner = self.inner.set_attribute_definitions(input);
  127    140   
        self
  128    141   
    }
  129         -
    /// <p>An array of attributes that describe the key schema for the table and indexes.</p>
         142  +
    /// /* FluentBuilderGenerator.kt:518 */<p>An array of attributes that describe the key schema for the table and indexes.</p>
         143  +
    /* FluentBuilderGenerator.kt:520 */
  130    144   
    pub fn get_attribute_definitions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>> {
  131    145   
        self.inner.get_attribute_definitions()
  132    146   
    }
  133         -
    /// <p>The name of the table to create.</p>
         147  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The name of the table to create.</p>
         148  +
    /* FluentBuilderGenerator.kt:500 */
  134    149   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  135    150   
        self.inner = self.inner.table_name(input.into());
  136    151   
        self
  137    152   
    }
  138         -
    /// <p>The name of the table to create.</p>
         153  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The name of the table to create.</p>
         154  +
    /* FluentBuilderGenerator.kt:500 */
  139    155   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  140    156   
        self.inner = self.inner.set_table_name(input);
  141    157   
        self
  142    158   
    }
  143         -
    /// <p>The name of the table to create.</p>
         159  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The name of the table to create.</p>
         160  +
    /* FluentBuilderGenerator.kt:520 */
  144    161   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
  145    162   
        self.inner.get_table_name()
  146    163   
    }
  147         -
    ///
         164  +
    /// /* FluentBuilderGenerator.kt:436 */
  148    165   
    /// Appends an item to `KeySchema`.
  149    166   
    ///
  150    167   
    /// To override the contents of this collection use [`set_key_schema`](Self::set_key_schema).
  151    168   
    ///
  152         -
    /// <p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         169  +
    /// /* FluentBuilderGenerator.kt:443 */<p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
  153    170   
    /// <p>Each <code>KeySchemaElement</code> in the array is composed of:</p>
  154    171   
    /// <ul>
  155    172   
    /// <li>
  156    173   
    /// <p><code>AttributeName</code> - The name of this key attribute.</p></li>
  157    174   
    /// <li>
  158    175   
    /// <p><code>KeyType</code> - The role that the key attribute will assume:</p>
  159    176   
    /// <ul>
  160    177   
    /// <li>
  161    178   
    /// <p><code>HASH</code> - partition key</p></li>
  162    179   
    /// <li>
  163    180   
    /// <p><code>RANGE</code> - sort key</p></li>
  164    181   
    /// </ul></li>
  165    182   
    /// </ul><note>
  166    183   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from the DynamoDB usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  167    184   
    /// <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>
  168    185   
    /// </note>
  169    186   
    /// <p>For a simple primary key (partition key), you must provide exactly one element with a <code>KeyType</code> of <code>HASH</code>.</p>
  170    187   
    /// <p>For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a <code>KeyType</code> of <code>HASH</code>, and the second element must have a <code>KeyType</code> of <code>RANGE</code>.</p>
  171    188   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         189  +
    /* FluentBuilderGenerator.kt:446 */
  172    190   
    pub fn key_schema(mut self, input: crate::types::KeySchemaElement) -> Self {
  173    191   
        self.inner = self.inner.key_schema(input);
  174    192   
        self
  175    193   
    }
  176         -
    /// <p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         194  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
  177    195   
    /// <p>Each <code>KeySchemaElement</code> in the array is composed of:</p>
  178    196   
    /// <ul>
  179    197   
    /// <li>
  180    198   
    /// <p><code>AttributeName</code> - The name of this key attribute.</p></li>
  181    199   
    /// <li>
  182    200   
    /// <p><code>KeyType</code> - The role that the key attribute will assume:</p>
  183    201   
    /// <ul>
  184    202   
    /// <li>
  185    203   
    /// <p><code>HASH</code> - partition key</p></li>
  186    204   
    /// <li>
  187    205   
    /// <p><code>RANGE</code> - sort key</p></li>
  188    206   
    /// </ul></li>
  189    207   
    /// </ul><note>
  190    208   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from the DynamoDB usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  191    209   
    /// <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>
  192    210   
    /// </note>
  193    211   
    /// <p>For a simple primary key (partition key), you must provide exactly one element with a <code>KeyType</code> of <code>HASH</code>.</p>
  194    212   
    /// <p>For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a <code>KeyType</code> of <code>HASH</code>, and the second element must have a <code>KeyType</code> of <code>RANGE</code>.</p>
  195    213   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         214  +
    /* FluentBuilderGenerator.kt:500 */
  196    215   
    pub fn set_key_schema(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>) -> Self {
  197    216   
        self.inner = self.inner.set_key_schema(input);
  198    217   
        self
  199    218   
    }
  200         -
    /// <p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         219  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
  201    220   
    /// <p>Each <code>KeySchemaElement</code> in the array is composed of:</p>
  202    221   
    /// <ul>
  203    222   
    /// <li>
  204    223   
    /// <p><code>AttributeName</code> - The name of this key attribute.</p></li>
  205    224   
    /// <li>
  206    225   
    /// <p><code>KeyType</code> - The role that the key attribute will assume:</p>
  207    226   
    /// <ul>
  208    227   
    /// <li>
  209    228   
    /// <p><code>HASH</code> - partition key</p></li>
  210    229   
    /// <li>
  211    230   
    /// <p><code>RANGE</code> - sort key</p></li>
  212    231   
    /// </ul></li>
  213    232   
    /// </ul><note>
  214    233   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from the DynamoDB usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  215    234   
    /// <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>
  216    235   
    /// </note>
  217    236   
    /// <p>For a simple primary key (partition key), you must provide exactly one element with a <code>KeyType</code> of <code>HASH</code>.</p>
  218    237   
    /// <p>For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a <code>KeyType</code> of <code>HASH</code>, and the second element must have a <code>KeyType</code> of <code>RANGE</code>.</p>
  219    238   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         239  +
    /* FluentBuilderGenerator.kt:520 */
  220    240   
    pub fn get_key_schema(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>> {
  221    241   
        self.inner.get_key_schema()
  222    242   
    }
  223         -
    ///
         243  +
    /// /* FluentBuilderGenerator.kt:436 */
  224    244   
    /// Appends an item to `LocalSecondaryIndexes`.
  225    245   
    ///
  226    246   
    /// To override the contents of this collection use [`set_local_secondary_indexes`](Self::set_local_secondary_indexes).
  227    247   
    ///
  228         -
    /// <p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
         248  +
    /// /* FluentBuilderGenerator.kt:443 */<p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
  229    249   
    /// <p>Each local secondary index in the array includes the following:</p>
  230    250   
    /// <ul>
  231    251   
    /// <li>
  232    252   
    /// <p><code>IndexName</code> - The name of the local secondary index. Must be unique only for this table.</p>
  233    253   
    /// <p></p></li>
  234    254   
    /// <li>
  235    255   
    /// <p><code>KeySchema</code> - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table.</p></li>
  236    256   
    /// <li>
  237    257   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  238    258   
    /// <ul>
  239    259   
    /// <li>
  240    260   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  241    261   
    /// <ul>
  242    262   
    /// <li>
  243    263   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  244    264   
    /// <li>
  245    265   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  246    266   
    /// <li>
  247    267   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  248    268   
    /// </ul></li>
  249    269   
    /// <li>
  250    270   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  251    271   
    /// </ul></li>
  252    272   
    /// </ul>
         273  +
    /* FluentBuilderGenerator.kt:446 */
  253    274   
    pub fn local_secondary_indexes(mut self, input: crate::types::LocalSecondaryIndex) -> Self {
  254    275   
        self.inner = self.inner.local_secondary_indexes(input);
  255    276   
        self
  256    277   
    }
  257         -
    /// <p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
         278  +
    /// /* FluentBuilderGenerator.kt:498 */<p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
  258    279   
    /// <p>Each local secondary index in the array includes the following:</p>
  259    280   
    /// <ul>
  260    281   
    /// <li>
  261    282   
    /// <p><code>IndexName</code> - The name of the local secondary index. Must be unique only for this table.</p>
  262    283   
    /// <p></p></li>
  263    284   
    /// <li>
  264    285   
    /// <p><code>KeySchema</code> - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table.</p></li>
  265    286   
    /// <li>
  266    287   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  267    288   
    /// <ul>
  268    289   
    /// <li>
  269    290   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  270    291   
    /// <ul>
  271    292   
    /// <li>
  272    293   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  273    294   
    /// <li>
  274    295   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  275    296   
    /// <li>
  276    297   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  277    298   
    /// </ul></li>
  278    299   
    /// <li>
  279    300   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  280    301   
    /// </ul></li>
  281    302   
    /// </ul>
         303  +
    /* FluentBuilderGenerator.kt:500 */
  282    304   
    pub fn set_local_secondary_indexes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndex>>) -> Self {
  283    305   
        self.inner = self.inner.set_local_secondary_indexes(input);
  284    306   
        self
  285    307   
    }
  286         -
    /// <p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
         308  +
    /// /* FluentBuilderGenerator.kt:518 */<p>One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.</p>
  287    309   
    /// <p>Each local secondary index in the array includes the following:</p>
  288    310   
    /// <ul>
  289    311   
    /// <li>
  290    312   
    /// <p><code>IndexName</code> - The name of the local secondary index. Must be unique only for this table.</p>
  291    313   
    /// <p></p></li>
  292    314   
    /// <li>
  293    315   
    /// <p><code>KeySchema</code> - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table.</p></li>
  294    316   
    /// <li>
  295    317   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  296    318   
    /// <ul>
  297    319   
    /// <li>
  298    320   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  299    321   
    /// <ul>
  300    322   
    /// <li>
  301    323   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  302    324   
    /// <li>
  303    325   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  304    326   
    /// <li>
  305    327   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  306    328   
    /// </ul></li>
  307    329   
    /// <li>
  308    330   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  309    331   
    /// </ul></li>
  310    332   
    /// </ul>
         333  +
    /* FluentBuilderGenerator.kt:520 */
  311    334   
    pub fn get_local_secondary_indexes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndex>> {
  312    335   
        self.inner.get_local_secondary_indexes()
  313    336   
    }
  314         -
    ///
         337  +
    /// /* FluentBuilderGenerator.kt:436 */
  315    338   
    /// Appends an item to `GlobalSecondaryIndexes`.
  316    339   
    ///
  317    340   
    /// To override the contents of this collection use [`set_global_secondary_indexes`](Self::set_global_secondary_indexes).
  318    341   
    ///
  319         -
    /// <p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
         342  +
    /// /* FluentBuilderGenerator.kt:443 */<p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
  320    343   
    /// <ul>
  321    344   
    /// <li>
  322    345   
    /// <p><code>IndexName</code> - The name of the global secondary index. Must be unique only for this table.</p>
  323    346   
    /// <p></p></li>
  324    347   
    /// <li>
  325    348   
    /// <p><code>KeySchema</code> - Specifies the key schema for the global secondary index.</p></li>
  326    349   
    /// <li>
  327    350   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  328    351   
    /// <ul>
  329    352   
    /// <li>
  330    353   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  331    354   
    /// <ul>
  332    355   
    /// <li>
  333    356   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  334    357   
    /// <li>
  335    358   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  336    359   
    /// <li>
  337    360   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  338    361   
    /// </ul></li>
  339    362   
    /// <li>
  340    363   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  341    364   
    /// </ul></li>
  342    365   
    /// <li>
  343    366   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.</p></li>
  344    367   
    /// </ul>
         368  +
    /* FluentBuilderGenerator.kt:446 */
  345    369   
    pub fn global_secondary_indexes(mut self, input: crate::types::GlobalSecondaryIndex) -> Self {
  346    370   
        self.inner = self.inner.global_secondary_indexes(input);
  347    371   
        self
  348    372   
    }
  349         -
    /// <p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
         373  +
    /// /* FluentBuilderGenerator.kt:498 */<p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
  350    374   
    /// <ul>
  351    375   
    /// <li>
  352    376   
    /// <p><code>IndexName</code> - The name of the global secondary index. Must be unique only for this table.</p>
  353    377   
    /// <p></p></li>
  354    378   
    /// <li>
  355    379   
    /// <p><code>KeySchema</code> - Specifies the key schema for the global secondary index.</p></li>
  356    380   
    /// <li>
  357    381   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  358    382   
    /// <ul>
  359    383   
    /// <li>
  360    384   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  361    385   
    /// <ul>
  362    386   
    /// <li>
  363    387   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  364    388   
    /// <li>
  365    389   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  366    390   
    /// <li>
  367    391   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  368    392   
    /// </ul></li>
  369    393   
    /// <li>
  370    394   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  371    395   
    /// </ul></li>
  372    396   
    /// <li>
  373    397   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.</p></li>
  374    398   
    /// </ul>
         399  +
    /* FluentBuilderGenerator.kt:500 */
  375    400   
    pub fn set_global_secondary_indexes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndex>>) -> Self {
  376    401   
        self.inner = self.inner.set_global_secondary_indexes(input);
  377    402   
        self
  378    403   
    }
  379         -
    /// <p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
         404  +
    /// /* FluentBuilderGenerator.kt:518 */<p>One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:</p>
  380    405   
    /// <ul>
  381    406   
    /// <li>
  382    407   
    /// <p><code>IndexName</code> - The name of the global secondary index. Must be unique only for this table.</p>
  383    408   
    /// <p></p></li>
  384    409   
    /// <li>
  385    410   
    /// <p><code>KeySchema</code> - Specifies the key schema for the global secondary index.</p></li>
  386    411   
    /// <li>
  387    412   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  388    413   
    /// <ul>
  389    414   
    /// <li>
  390    415   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  391    416   
    /// <ul>
  392    417   
    /// <li>
  393    418   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  394    419   
    /// <li>
  395    420   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  396    421   
    /// <li>
  397    422   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  398    423   
    /// </ul></li>
  399    424   
    /// <li>
  400    425   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  401    426   
    /// </ul></li>
  402    427   
    /// <li>
  403    428   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.</p></li>
  404    429   
    /// </ul>
         430  +
    /* FluentBuilderGenerator.kt:520 */
  405    431   
    pub fn get_global_secondary_indexes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndex>> {
  406    432   
        self.inner.get_global_secondary_indexes()
  407    433   
    }
  408         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
         434  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
  409    435   
    /// <ul>
  410    436   
    /// <li>
  411    437   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  412    438   
    /// <li>
  413    439   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  414    440   
    /// </ul>
         441  +
    /* FluentBuilderGenerator.kt:500 */
  415    442   
    pub fn billing_mode(mut self, input: crate::types::BillingMode) -> Self {
  416    443   
        self.inner = self.inner.billing_mode(input);
  417    444   
        self
  418    445   
    }
  419         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
         446  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
  420    447   
    /// <ul>
  421    448   
    /// <li>
  422    449   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  423    450   
    /// <li>
  424    451   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  425    452   
    /// </ul>
         453  +
    /* FluentBuilderGenerator.kt:500 */
  426    454   
    pub fn set_billing_mode(mut self, input: ::std::option::Option<crate::types::BillingMode>) -> Self {
  427    455   
        self.inner = self.inner.set_billing_mode(input);
  428    456   
        self
  429    457   
    }
  430         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
         458  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.</p>
  431    459   
    /// <ul>
  432    460   
    /// <li>
  433    461   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  434    462   
    /// <li>
  435    463   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  436    464   
    /// </ul>
         465  +
    /* FluentBuilderGenerator.kt:520 */
  437    466   
    pub fn get_billing_mode(&self) -> &::std::option::Option<crate::types::BillingMode> {
  438    467   
        self.inner.get_billing_mode()
  439    468   
    }
  440         -
    /// <p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
         469  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
  441    470   
    /// <p>If you set BillingMode as <code>PROVISIONED</code>, you must specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, you cannot specify this property.</p>
  442    471   
    /// <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>
         472  +
    /* FluentBuilderGenerator.kt:500 */
  443    473   
    pub fn provisioned_throughput(mut self, input: crate::types::ProvisionedThroughput) -> Self {
  444    474   
        self.inner = self.inner.provisioned_throughput(input);
  445    475   
        self
  446    476   
    }
  447         -
    /// <p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
         477  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
  448    478   
    /// <p>If you set BillingMode as <code>PROVISIONED</code>, you must specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, you cannot specify this property.</p>
  449    479   
    /// <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>
         480  +
    /* FluentBuilderGenerator.kt:500 */
  450    481   
    pub fn set_provisioned_throughput(mut self, input: ::std::option::Option<crate::types::ProvisionedThroughput>) -> Self {
  451    482   
        self.inner = self.inner.set_provisioned_throughput(input);
  452    483   
        self
  453    484   
    }
  454         -
    /// <p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
         485  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.</p>
  455    486   
    /// <p>If you set BillingMode as <code>PROVISIONED</code>, you must specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, you cannot specify this property.</p>
  456    487   
    /// <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>
         488  +
    /* FluentBuilderGenerator.kt:520 */
  457    489   
    pub fn get_provisioned_throughput(&self) -> &::std::option::Option<crate::types::ProvisionedThroughput> {
  458    490   
        self.inner.get_provisioned_throughput()
  459    491   
    }
  460         -
    /// <p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
         492  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
  461    493   
    /// <ul>
  462    494   
    /// <li>
  463    495   
    /// <p><code>StreamEnabled</code> - Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false).</p></li>
  464    496   
    /// <li>
  465    497   
    /// <p><code>StreamViewType</code> - When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the table's stream. Valid values for <code>StreamViewType</code> are:</p>
  466    498   
    /// <ul>
  467    499   
    /// <li>
  468    500   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
  469    501   
    /// <li>
  470    502   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
  471    503   
    /// <li>
  472    504   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
  473    505   
    /// <li>
  474    506   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
  475    507   
    /// </ul></li>
  476    508   
    /// </ul>
         509  +
    /* FluentBuilderGenerator.kt:500 */
  477    510   
    pub fn stream_specification(mut self, input: crate::types::StreamSpecification) -> Self {
  478    511   
        self.inner = self.inner.stream_specification(input);
  479    512   
        self
  480    513   
    }
  481         -
    /// <p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
         514  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
  482    515   
    /// <ul>
  483    516   
    /// <li>
  484    517   
    /// <p><code>StreamEnabled</code> - Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false).</p></li>
  485    518   
    /// <li>
  486    519   
    /// <p><code>StreamViewType</code> - When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the table's stream. Valid values for <code>StreamViewType</code> are:</p>
  487    520   
    /// <ul>
  488    521   
    /// <li>
  489    522   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
  490    523   
    /// <li>
  491    524   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
  492    525   
    /// <li>
  493    526   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
  494    527   
    /// <li>
  495    528   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
  496    529   
    /// </ul></li>
  497    530   
    /// </ul>
         531  +
    /* FluentBuilderGenerator.kt:500 */
  498    532   
    pub fn set_stream_specification(mut self, input: ::std::option::Option<crate::types::StreamSpecification>) -> Self {
  499    533   
        self.inner = self.inner.set_stream_specification(input);
  500    534   
        self
  501    535   
    }
  502         -
    /// <p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
         536  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The settings for DynamoDB Streams on the table. These settings consist of:</p>
  503    537   
    /// <ul>
  504    538   
    /// <li>
  505    539   
    /// <p><code>StreamEnabled</code> - Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false).</p></li>
  506    540   
    /// <li>
  507    541   
    /// <p><code>StreamViewType</code> - When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the table's stream. Valid values for <code>StreamViewType</code> are:</p>
  508    542   
    /// <ul>
  509    543   
    /// <li>
  510    544   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
  511    545   
    /// <li>
  512    546   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
  513    547   
    /// <li>
  514    548   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
  515    549   
    /// <li>
  516    550   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
  517    551   
    /// </ul></li>
  518    552   
    /// </ul>
         553  +
    /* FluentBuilderGenerator.kt:520 */
  519    554   
    pub fn get_stream_specification(&self) -> &::std::option::Option<crate::types::StreamSpecification> {
  520    555   
        self.inner.get_stream_specification()
  521    556   
    }
  522         -
    /// <p>Represents the settings used to enable server-side encryption.</p>
         557  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the settings used to enable server-side encryption.</p>
         558  +
    /* FluentBuilderGenerator.kt:500 */
  523    559   
    pub fn sse_specification(mut self, input: crate::types::SseSpecification) -> Self {
  524    560   
        self.inner = self.inner.sse_specification(input);
  525    561   
        self
  526    562   
    }
  527         -
    /// <p>Represents the settings used to enable server-side encryption.</p>
         563  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the settings used to enable server-side encryption.</p>
         564  +
    /* FluentBuilderGenerator.kt:500 */
  528    565   
    pub fn set_sse_specification(mut self, input: ::std::option::Option<crate::types::SseSpecification>) -> Self {
  529    566   
        self.inner = self.inner.set_sse_specification(input);
  530    567   
        self
  531    568   
    }
  532         -
    /// <p>Represents the settings used to enable server-side encryption.</p>
         569  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Represents the settings used to enable server-side encryption.</p>
         570  +
    /* FluentBuilderGenerator.kt:520 */
  533    571   
    pub fn get_sse_specification(&self) -> &::std::option::Option<crate::types::SseSpecification> {
  534    572   
        self.inner.get_sse_specification()
  535    573   
    }
  536         -
    ///
         574  +
    /// /* FluentBuilderGenerator.kt:436 */
  537    575   
    /// Appends an item to `Tags`.
  538    576   
    ///
  539    577   
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
  540    578   
    ///
  541         -
    /// <p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         579  +
    /// /* FluentBuilderGenerator.kt:443 */<p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         580  +
    /* FluentBuilderGenerator.kt:446 */
  542    581   
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
  543    582   
        self.inner = self.inner.tags(input);
  544    583   
        self
  545    584   
    }
  546         -
    /// <p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         585  +
    /// /* FluentBuilderGenerator.kt:498 */<p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         586  +
    /* FluentBuilderGenerator.kt:500 */
  547    587   
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
  548    588   
        self.inner = self.inner.set_tags(input);
  549    589   
        self
  550    590   
    }
  551         -
    /// <p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         591  +
    /// /* FluentBuilderGenerator.kt:518 */<p>A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.</p>
         592  +
    /* FluentBuilderGenerator.kt:520 */
  552    593   
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
  553    594   
        self.inner.get_tags()
  554    595   
    }
         596  +
    /* FluentBuilderGenerator.kt:282 */
  555    597   
}

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

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