aws_sdk_keyspaces/operation/create_table/
_create_table_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct CreateTableInput {
6    /// <p>The name of the keyspace that the table is going to be created in.</p>
7    pub keyspace_name: ::std::option::Option<::std::string::String>,
8    /// <p>The name of the table.</p>
9    pub table_name: ::std::option::Option<::std::string::String>,
10    /// <p>The <code>schemaDefinition</code> consists of the following parameters.</p>
11    /// <p>For each column to be created:</p>
12    /// <ul>
13    /// <li>
14    /// <p><code>name</code> - The name of the column.</p></li>
15    /// <li>
16    /// <p><code>type</code> - An Amazon Keyspaces data type. For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types">Data types</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p></li>
17    /// </ul>
18    /// <p>The primary key of the table consists of the following columns:</p>
19    /// <ul>
20    /// <li>
21    /// <p><code>partitionKeys</code> - The partition key can be a single column, or it can be a compound value composed of two or more columns. The partition key portion of the primary key is required and determines how Amazon Keyspaces stores your data.</p></li>
22    /// <li>
23    /// <p><code>name</code> - The name of each partition key column.</p></li>
24    /// <li>
25    /// <p><code>clusteringKeys</code> - The optional clustering column portion of your primary key determines how the data is clustered and sorted within each partition.</p></li>
26    /// <li>
27    /// <p><code>name</code> - The name of the clustering column.</p></li>
28    /// <li>
29    /// <p><code>orderBy</code> - Sets the ascendant (<code>ASC</code>) or descendant (<code>DESC</code>) order modifier.</p>
30    /// <p>To define a column as static use <code>staticColumns</code> - Static columns store values that are shared by all rows in the same partition:</p></li>
31    /// <li>
32    /// <p><code>name</code> - The name of the column.</p></li>
33    /// <li>
34    /// <p><code>type</code> - An Amazon Keyspaces data type.</p></li>
35    /// </ul>
36    pub schema_definition: ::std::option::Option<crate::types::SchemaDefinition>,
37    /// <p>This parameter allows to enter a description of the table.</p>
38    pub comment: ::std::option::Option<crate::types::Comment>,
39    /// <p>Specifies the read/write throughput capacity mode for the table. The options are:</p>
40    /// <ul>
41    /// <li>
42    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
43    /// <li>
44    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
45    /// </ul>
46    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
47    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html">Read/write capacity modes</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
48    pub capacity_specification: ::std::option::Option<crate::types::CapacitySpecification>,
49    /// <p>Specifies how the encryption key for encryption at rest is managed for the table. You can choose one of the following KMS key (KMS key):</p>
50    /// <ul>
51    /// <li>
52    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
53    /// <li>
54    /// <p><code>type:CUSTOMER_MANAGED_KMS_KEY</code> - This key is stored in your account and is created, owned, and managed by you. This option requires the <code>kms_key_identifier</code> of the KMS key in Amazon Resource Name (ARN) format as input.</p></li>
55    /// </ul>
56    /// <p>The default is <code>type:AWS_OWNED_KMS_KEY</code>.</p>
57    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html">Encryption at rest</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
58    pub encryption_specification: ::std::option::Option<crate::types::EncryptionSpecification>,
59    /// <p>Specifies if <code>pointInTimeRecovery</code> is enabled or disabled for the table. The options are:</p>
60    /// <ul>
61    /// <li>
62    /// <p><code>status=ENABLED</code></p></li>
63    /// <li>
64    /// <p><code>status=DISABLED</code></p></li>
65    /// </ul>
66    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
67    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery.html">Point-in-time recovery</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
68    pub point_in_time_recovery: ::std::option::Option<crate::types::PointInTimeRecovery>,
69    /// <p>Enables Time to Live custom settings for the table. The options are:</p>
70    /// <ul>
71    /// <li>
72    /// <p><code>status:enabled</code></p></li>
73    /// <li>
74    /// <p><code>status:disabled</code></p></li>
75    /// </ul>
76    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
77    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html">Expiring data by using Amazon Keyspaces Time to Live (TTL)</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
78    pub ttl: ::std::option::Option<crate::types::TimeToLive>,
79    /// <p>The default Time to Live setting in seconds for the table.</p>
80    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl">Setting the default TTL value for a table</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
81    pub default_time_to_live: ::std::option::Option<i32>,
82    /// <p>A list of key-value pair tags to be attached to the resource.</p>
83    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html">Adding tags and labels to Amazon Keyspaces resources</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
84    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
85    /// <p>Enables client-side timestamps for the table. By default, the setting is disabled. You can enable client-side timestamps with the following option:</p>
86    /// <ul>
87    /// <li>
88    /// <p><code>status: "enabled"</code></p></li>
89    /// </ul>
90    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
91    pub client_side_timestamps: ::std::option::Option<crate::types::ClientSideTimestamps>,
92    /// <p>The optional auto scaling settings for a table in provisioned capacity mode. Specifies if the service can manage throughput capacity automatically on your behalf.</p>
93    /// <p>Auto scaling helps you provision throughput capacity for variable workloads efficiently by increasing and decreasing your table's read and write capacity automatically in response to application traffic. For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html">Managing throughput capacity automatically with Amazon Keyspaces auto scaling</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
94    /// <p>By default, auto scaling is disabled for a table.</p>
95    pub auto_scaling_specification: ::std::option::Option<crate::types::AutoScalingSpecification>,
96    /// <p>The optional Amazon Web Services Region specific settings of a multi-Region table. These settings overwrite the general settings of the table for the specified Region.</p>
97    /// <p>For a multi-Region table in provisioned capacity mode, you can configure the table's read capacity differently for each Region's replica. The write capacity, however, remains synchronized between all replicas to ensure that there's enough capacity to replicate writes across all Regions. To define the read capacity for a table replica in a specific Region, you can do so by configuring the following parameters.</p>
98    /// <ul>
99    /// <li>
100    /// <p><code>region</code>: The Region where these settings are applied. (Required)</p></li>
101    /// <li>
102    /// <p><code>readCapacityUnits</code>: The provisioned read capacity units. (Optional)</p></li>
103    /// <li>
104    /// <p><code>readCapacityAutoScaling</code>: The read capacity auto scaling settings for the table. (Optional)</p></li>
105    /// </ul>
106    pub replica_specifications: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>>,
107    /// <p>The CDC stream settings of the table.</p>
108    pub cdc_specification: ::std::option::Option<crate::types::CdcSpecification>,
109}
110impl CreateTableInput {
111    /// <p>The name of the keyspace that the table is going to be created in.</p>
112    pub fn keyspace_name(&self) -> ::std::option::Option<&str> {
113        self.keyspace_name.as_deref()
114    }
115    /// <p>The name of the table.</p>
116    pub fn table_name(&self) -> ::std::option::Option<&str> {
117        self.table_name.as_deref()
118    }
119    /// <p>The <code>schemaDefinition</code> consists of the following parameters.</p>
120    /// <p>For each column to be created:</p>
121    /// <ul>
122    /// <li>
123    /// <p><code>name</code> - The name of the column.</p></li>
124    /// <li>
125    /// <p><code>type</code> - An Amazon Keyspaces data type. For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types">Data types</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p></li>
126    /// </ul>
127    /// <p>The primary key of the table consists of the following columns:</p>
128    /// <ul>
129    /// <li>
130    /// <p><code>partitionKeys</code> - The partition key can be a single column, or it can be a compound value composed of two or more columns. The partition key portion of the primary key is required and determines how Amazon Keyspaces stores your data.</p></li>
131    /// <li>
132    /// <p><code>name</code> - The name of each partition key column.</p></li>
133    /// <li>
134    /// <p><code>clusteringKeys</code> - The optional clustering column portion of your primary key determines how the data is clustered and sorted within each partition.</p></li>
135    /// <li>
136    /// <p><code>name</code> - The name of the clustering column.</p></li>
137    /// <li>
138    /// <p><code>orderBy</code> - Sets the ascendant (<code>ASC</code>) or descendant (<code>DESC</code>) order modifier.</p>
139    /// <p>To define a column as static use <code>staticColumns</code> - Static columns store values that are shared by all rows in the same partition:</p></li>
140    /// <li>
141    /// <p><code>name</code> - The name of the column.</p></li>
142    /// <li>
143    /// <p><code>type</code> - An Amazon Keyspaces data type.</p></li>
144    /// </ul>
145    pub fn schema_definition(&self) -> ::std::option::Option<&crate::types::SchemaDefinition> {
146        self.schema_definition.as_ref()
147    }
148    /// <p>This parameter allows to enter a description of the table.</p>
149    pub fn comment(&self) -> ::std::option::Option<&crate::types::Comment> {
150        self.comment.as_ref()
151    }
152    /// <p>Specifies the read/write throughput capacity mode for the table. The options are:</p>
153    /// <ul>
154    /// <li>
155    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
156    /// <li>
157    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
158    /// </ul>
159    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
160    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html">Read/write capacity modes</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
161    pub fn capacity_specification(&self) -> ::std::option::Option<&crate::types::CapacitySpecification> {
162        self.capacity_specification.as_ref()
163    }
164    /// <p>Specifies how the encryption key for encryption at rest is managed for the table. You can choose one of the following KMS key (KMS key):</p>
165    /// <ul>
166    /// <li>
167    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
168    /// <li>
169    /// <p><code>type:CUSTOMER_MANAGED_KMS_KEY</code> - This key is stored in your account and is created, owned, and managed by you. This option requires the <code>kms_key_identifier</code> of the KMS key in Amazon Resource Name (ARN) format as input.</p></li>
170    /// </ul>
171    /// <p>The default is <code>type:AWS_OWNED_KMS_KEY</code>.</p>
172    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html">Encryption at rest</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
173    pub fn encryption_specification(&self) -> ::std::option::Option<&crate::types::EncryptionSpecification> {
174        self.encryption_specification.as_ref()
175    }
176    /// <p>Specifies if <code>pointInTimeRecovery</code> is enabled or disabled for the table. The options are:</p>
177    /// <ul>
178    /// <li>
179    /// <p><code>status=ENABLED</code></p></li>
180    /// <li>
181    /// <p><code>status=DISABLED</code></p></li>
182    /// </ul>
183    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
184    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery.html">Point-in-time recovery</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
185    pub fn point_in_time_recovery(&self) -> ::std::option::Option<&crate::types::PointInTimeRecovery> {
186        self.point_in_time_recovery.as_ref()
187    }
188    /// <p>Enables Time to Live custom settings for the table. The options are:</p>
189    /// <ul>
190    /// <li>
191    /// <p><code>status:enabled</code></p></li>
192    /// <li>
193    /// <p><code>status:disabled</code></p></li>
194    /// </ul>
195    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
196    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html">Expiring data by using Amazon Keyspaces Time to Live (TTL)</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
197    pub fn ttl(&self) -> ::std::option::Option<&crate::types::TimeToLive> {
198        self.ttl.as_ref()
199    }
200    /// <p>The default Time to Live setting in seconds for the table.</p>
201    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl">Setting the default TTL value for a table</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
202    pub fn default_time_to_live(&self) -> ::std::option::Option<i32> {
203        self.default_time_to_live
204    }
205    /// <p>A list of key-value pair tags to be attached to the resource.</p>
206    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html">Adding tags and labels to Amazon Keyspaces resources</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
207    ///
208    /// 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()`.
209    pub fn tags(&self) -> &[crate::types::Tag] {
210        self.tags.as_deref().unwrap_or_default()
211    }
212    /// <p>Enables client-side timestamps for the table. By default, the setting is disabled. You can enable client-side timestamps with the following option:</p>
213    /// <ul>
214    /// <li>
215    /// <p><code>status: "enabled"</code></p></li>
216    /// </ul>
217    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
218    pub fn client_side_timestamps(&self) -> ::std::option::Option<&crate::types::ClientSideTimestamps> {
219        self.client_side_timestamps.as_ref()
220    }
221    /// <p>The optional auto scaling settings for a table in provisioned capacity mode. Specifies if the service can manage throughput capacity automatically on your behalf.</p>
222    /// <p>Auto scaling helps you provision throughput capacity for variable workloads efficiently by increasing and decreasing your table's read and write capacity automatically in response to application traffic. For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html">Managing throughput capacity automatically with Amazon Keyspaces auto scaling</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
223    /// <p>By default, auto scaling is disabled for a table.</p>
224    pub fn auto_scaling_specification(&self) -> ::std::option::Option<&crate::types::AutoScalingSpecification> {
225        self.auto_scaling_specification.as_ref()
226    }
227    /// <p>The optional Amazon Web Services Region specific settings of a multi-Region table. These settings overwrite the general settings of the table for the specified Region.</p>
228    /// <p>For a multi-Region table in provisioned capacity mode, you can configure the table's read capacity differently for each Region's replica. The write capacity, however, remains synchronized between all replicas to ensure that there's enough capacity to replicate writes across all Regions. To define the read capacity for a table replica in a specific Region, you can do so by configuring the following parameters.</p>
229    /// <ul>
230    /// <li>
231    /// <p><code>region</code>: The Region where these settings are applied. (Required)</p></li>
232    /// <li>
233    /// <p><code>readCapacityUnits</code>: The provisioned read capacity units. (Optional)</p></li>
234    /// <li>
235    /// <p><code>readCapacityAutoScaling</code>: The read capacity auto scaling settings for the table. (Optional)</p></li>
236    /// </ul>
237    ///
238    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.replica_specifications.is_none()`.
239    pub fn replica_specifications(&self) -> &[crate::types::ReplicaSpecification] {
240        self.replica_specifications.as_deref().unwrap_or_default()
241    }
242    /// <p>The CDC stream settings of the table.</p>
243    pub fn cdc_specification(&self) -> ::std::option::Option<&crate::types::CdcSpecification> {
244        self.cdc_specification.as_ref()
245    }
246}
247impl CreateTableInput {
248    /// Creates a new builder-style object to manufacture [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
249    pub fn builder() -> crate::operation::create_table::builders::CreateTableInputBuilder {
250        crate::operation::create_table::builders::CreateTableInputBuilder::default()
251    }
252}
253
254/// A builder for [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
255#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
256#[non_exhaustive]
257pub struct CreateTableInputBuilder {
258    pub(crate) keyspace_name: ::std::option::Option<::std::string::String>,
259    pub(crate) table_name: ::std::option::Option<::std::string::String>,
260    pub(crate) schema_definition: ::std::option::Option<crate::types::SchemaDefinition>,
261    pub(crate) comment: ::std::option::Option<crate::types::Comment>,
262    pub(crate) capacity_specification: ::std::option::Option<crate::types::CapacitySpecification>,
263    pub(crate) encryption_specification: ::std::option::Option<crate::types::EncryptionSpecification>,
264    pub(crate) point_in_time_recovery: ::std::option::Option<crate::types::PointInTimeRecovery>,
265    pub(crate) ttl: ::std::option::Option<crate::types::TimeToLive>,
266    pub(crate) default_time_to_live: ::std::option::Option<i32>,
267    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
268    pub(crate) client_side_timestamps: ::std::option::Option<crate::types::ClientSideTimestamps>,
269    pub(crate) auto_scaling_specification: ::std::option::Option<crate::types::AutoScalingSpecification>,
270    pub(crate) replica_specifications: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>>,
271    pub(crate) cdc_specification: ::std::option::Option<crate::types::CdcSpecification>,
272}
273impl CreateTableInputBuilder {
274    /// <p>The name of the keyspace that the table is going to be created in.</p>
275    /// This field is required.
276    pub fn keyspace_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
277        self.keyspace_name = ::std::option::Option::Some(input.into());
278        self
279    }
280    /// <p>The name of the keyspace that the table is going to be created in.</p>
281    pub fn set_keyspace_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
282        self.keyspace_name = input;
283        self
284    }
285    /// <p>The name of the keyspace that the table is going to be created in.</p>
286    pub fn get_keyspace_name(&self) -> &::std::option::Option<::std::string::String> {
287        &self.keyspace_name
288    }
289    /// <p>The name of the table.</p>
290    /// This field is required.
291    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
292        self.table_name = ::std::option::Option::Some(input.into());
293        self
294    }
295    /// <p>The name of the table.</p>
296    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
297        self.table_name = input;
298        self
299    }
300    /// <p>The name of the table.</p>
301    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
302        &self.table_name
303    }
304    /// <p>The <code>schemaDefinition</code> consists of the following parameters.</p>
305    /// <p>For each column to be created:</p>
306    /// <ul>
307    /// <li>
308    /// <p><code>name</code> - The name of the column.</p></li>
309    /// <li>
310    /// <p><code>type</code> - An Amazon Keyspaces data type. For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types">Data types</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p></li>
311    /// </ul>
312    /// <p>The primary key of the table consists of the following columns:</p>
313    /// <ul>
314    /// <li>
315    /// <p><code>partitionKeys</code> - The partition key can be a single column, or it can be a compound value composed of two or more columns. The partition key portion of the primary key is required and determines how Amazon Keyspaces stores your data.</p></li>
316    /// <li>
317    /// <p><code>name</code> - The name of each partition key column.</p></li>
318    /// <li>
319    /// <p><code>clusteringKeys</code> - The optional clustering column portion of your primary key determines how the data is clustered and sorted within each partition.</p></li>
320    /// <li>
321    /// <p><code>name</code> - The name of the clustering column.</p></li>
322    /// <li>
323    /// <p><code>orderBy</code> - Sets the ascendant (<code>ASC</code>) or descendant (<code>DESC</code>) order modifier.</p>
324    /// <p>To define a column as static use <code>staticColumns</code> - Static columns store values that are shared by all rows in the same partition:</p></li>
325    /// <li>
326    /// <p><code>name</code> - The name of the column.</p></li>
327    /// <li>
328    /// <p><code>type</code> - An Amazon Keyspaces data type.</p></li>
329    /// </ul>
330    /// This field is required.
331    pub fn schema_definition(mut self, input: crate::types::SchemaDefinition) -> Self {
332        self.schema_definition = ::std::option::Option::Some(input);
333        self
334    }
335    /// <p>The <code>schemaDefinition</code> consists of the following parameters.</p>
336    /// <p>For each column to be created:</p>
337    /// <ul>
338    /// <li>
339    /// <p><code>name</code> - The name of the column.</p></li>
340    /// <li>
341    /// <p><code>type</code> - An Amazon Keyspaces data type. For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types">Data types</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p></li>
342    /// </ul>
343    /// <p>The primary key of the table consists of the following columns:</p>
344    /// <ul>
345    /// <li>
346    /// <p><code>partitionKeys</code> - The partition key can be a single column, or it can be a compound value composed of two or more columns. The partition key portion of the primary key is required and determines how Amazon Keyspaces stores your data.</p></li>
347    /// <li>
348    /// <p><code>name</code> - The name of each partition key column.</p></li>
349    /// <li>
350    /// <p><code>clusteringKeys</code> - The optional clustering column portion of your primary key determines how the data is clustered and sorted within each partition.</p></li>
351    /// <li>
352    /// <p><code>name</code> - The name of the clustering column.</p></li>
353    /// <li>
354    /// <p><code>orderBy</code> - Sets the ascendant (<code>ASC</code>) or descendant (<code>DESC</code>) order modifier.</p>
355    /// <p>To define a column as static use <code>staticColumns</code> - Static columns store values that are shared by all rows in the same partition:</p></li>
356    /// <li>
357    /// <p><code>name</code> - The name of the column.</p></li>
358    /// <li>
359    /// <p><code>type</code> - An Amazon Keyspaces data type.</p></li>
360    /// </ul>
361    pub fn set_schema_definition(mut self, input: ::std::option::Option<crate::types::SchemaDefinition>) -> Self {
362        self.schema_definition = input;
363        self
364    }
365    /// <p>The <code>schemaDefinition</code> consists of the following parameters.</p>
366    /// <p>For each column to be created:</p>
367    /// <ul>
368    /// <li>
369    /// <p><code>name</code> - The name of the column.</p></li>
370    /// <li>
371    /// <p><code>type</code> - An Amazon Keyspaces data type. For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types">Data types</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p></li>
372    /// </ul>
373    /// <p>The primary key of the table consists of the following columns:</p>
374    /// <ul>
375    /// <li>
376    /// <p><code>partitionKeys</code> - The partition key can be a single column, or it can be a compound value composed of two or more columns. The partition key portion of the primary key is required and determines how Amazon Keyspaces stores your data.</p></li>
377    /// <li>
378    /// <p><code>name</code> - The name of each partition key column.</p></li>
379    /// <li>
380    /// <p><code>clusteringKeys</code> - The optional clustering column portion of your primary key determines how the data is clustered and sorted within each partition.</p></li>
381    /// <li>
382    /// <p><code>name</code> - The name of the clustering column.</p></li>
383    /// <li>
384    /// <p><code>orderBy</code> - Sets the ascendant (<code>ASC</code>) or descendant (<code>DESC</code>) order modifier.</p>
385    /// <p>To define a column as static use <code>staticColumns</code> - Static columns store values that are shared by all rows in the same partition:</p></li>
386    /// <li>
387    /// <p><code>name</code> - The name of the column.</p></li>
388    /// <li>
389    /// <p><code>type</code> - An Amazon Keyspaces data type.</p></li>
390    /// </ul>
391    pub fn get_schema_definition(&self) -> &::std::option::Option<crate::types::SchemaDefinition> {
392        &self.schema_definition
393    }
394    /// <p>This parameter allows to enter a description of the table.</p>
395    pub fn comment(mut self, input: crate::types::Comment) -> Self {
396        self.comment = ::std::option::Option::Some(input);
397        self
398    }
399    /// <p>This parameter allows to enter a description of the table.</p>
400    pub fn set_comment(mut self, input: ::std::option::Option<crate::types::Comment>) -> Self {
401        self.comment = input;
402        self
403    }
404    /// <p>This parameter allows to enter a description of the table.</p>
405    pub fn get_comment(&self) -> &::std::option::Option<crate::types::Comment> {
406        &self.comment
407    }
408    /// <p>Specifies the read/write throughput capacity mode for the table. The options are:</p>
409    /// <ul>
410    /// <li>
411    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
412    /// <li>
413    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
414    /// </ul>
415    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
416    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html">Read/write capacity modes</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
417    pub fn capacity_specification(mut self, input: crate::types::CapacitySpecification) -> Self {
418        self.capacity_specification = ::std::option::Option::Some(input);
419        self
420    }
421    /// <p>Specifies the read/write throughput capacity mode for the table. The options are:</p>
422    /// <ul>
423    /// <li>
424    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
425    /// <li>
426    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
427    /// </ul>
428    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
429    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html">Read/write capacity modes</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
430    pub fn set_capacity_specification(mut self, input: ::std::option::Option<crate::types::CapacitySpecification>) -> Self {
431        self.capacity_specification = input;
432        self
433    }
434    /// <p>Specifies the read/write throughput capacity mode for the table. The options are:</p>
435    /// <ul>
436    /// <li>
437    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
438    /// <li>
439    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
440    /// </ul>
441    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
442    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html">Read/write capacity modes</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
443    pub fn get_capacity_specification(&self) -> &::std::option::Option<crate::types::CapacitySpecification> {
444        &self.capacity_specification
445    }
446    /// <p>Specifies how the encryption key for encryption at rest is managed for the table. You can choose one of the following KMS key (KMS key):</p>
447    /// <ul>
448    /// <li>
449    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
450    /// <li>
451    /// <p><code>type:CUSTOMER_MANAGED_KMS_KEY</code> - This key is stored in your account and is created, owned, and managed by you. This option requires the <code>kms_key_identifier</code> of the KMS key in Amazon Resource Name (ARN) format as input.</p></li>
452    /// </ul>
453    /// <p>The default is <code>type:AWS_OWNED_KMS_KEY</code>.</p>
454    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html">Encryption at rest</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
455    pub fn encryption_specification(mut self, input: crate::types::EncryptionSpecification) -> Self {
456        self.encryption_specification = ::std::option::Option::Some(input);
457        self
458    }
459    /// <p>Specifies how the encryption key for encryption at rest is managed for the table. You can choose one of the following KMS key (KMS key):</p>
460    /// <ul>
461    /// <li>
462    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
463    /// <li>
464    /// <p><code>type:CUSTOMER_MANAGED_KMS_KEY</code> - This key is stored in your account and is created, owned, and managed by you. This option requires the <code>kms_key_identifier</code> of the KMS key in Amazon Resource Name (ARN) format as input.</p></li>
465    /// </ul>
466    /// <p>The default is <code>type:AWS_OWNED_KMS_KEY</code>.</p>
467    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html">Encryption at rest</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
468    pub fn set_encryption_specification(mut self, input: ::std::option::Option<crate::types::EncryptionSpecification>) -> Self {
469        self.encryption_specification = input;
470        self
471    }
472    /// <p>Specifies how the encryption key for encryption at rest is managed for the table. You can choose one of the following KMS key (KMS key):</p>
473    /// <ul>
474    /// <li>
475    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
476    /// <li>
477    /// <p><code>type:CUSTOMER_MANAGED_KMS_KEY</code> - This key is stored in your account and is created, owned, and managed by you. This option requires the <code>kms_key_identifier</code> of the KMS key in Amazon Resource Name (ARN) format as input.</p></li>
478    /// </ul>
479    /// <p>The default is <code>type:AWS_OWNED_KMS_KEY</code>.</p>
480    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html">Encryption at rest</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
481    pub fn get_encryption_specification(&self) -> &::std::option::Option<crate::types::EncryptionSpecification> {
482        &self.encryption_specification
483    }
484    /// <p>Specifies if <code>pointInTimeRecovery</code> is enabled or disabled for the table. The options are:</p>
485    /// <ul>
486    /// <li>
487    /// <p><code>status=ENABLED</code></p></li>
488    /// <li>
489    /// <p><code>status=DISABLED</code></p></li>
490    /// </ul>
491    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
492    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery.html">Point-in-time recovery</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
493    pub fn point_in_time_recovery(mut self, input: crate::types::PointInTimeRecovery) -> Self {
494        self.point_in_time_recovery = ::std::option::Option::Some(input);
495        self
496    }
497    /// <p>Specifies if <code>pointInTimeRecovery</code> is enabled or disabled for the table. The options are:</p>
498    /// <ul>
499    /// <li>
500    /// <p><code>status=ENABLED</code></p></li>
501    /// <li>
502    /// <p><code>status=DISABLED</code></p></li>
503    /// </ul>
504    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
505    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery.html">Point-in-time recovery</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
506    pub fn set_point_in_time_recovery(mut self, input: ::std::option::Option<crate::types::PointInTimeRecovery>) -> Self {
507        self.point_in_time_recovery = input;
508        self
509    }
510    /// <p>Specifies if <code>pointInTimeRecovery</code> is enabled or disabled for the table. The options are:</p>
511    /// <ul>
512    /// <li>
513    /// <p><code>status=ENABLED</code></p></li>
514    /// <li>
515    /// <p><code>status=DISABLED</code></p></li>
516    /// </ul>
517    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
518    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery.html">Point-in-time recovery</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
519    pub fn get_point_in_time_recovery(&self) -> &::std::option::Option<crate::types::PointInTimeRecovery> {
520        &self.point_in_time_recovery
521    }
522    /// <p>Enables Time to Live custom settings for the table. The options are:</p>
523    /// <ul>
524    /// <li>
525    /// <p><code>status:enabled</code></p></li>
526    /// <li>
527    /// <p><code>status:disabled</code></p></li>
528    /// </ul>
529    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
530    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html">Expiring data by using Amazon Keyspaces Time to Live (TTL)</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
531    pub fn ttl(mut self, input: crate::types::TimeToLive) -> Self {
532        self.ttl = ::std::option::Option::Some(input);
533        self
534    }
535    /// <p>Enables Time to Live custom settings for the table. The options are:</p>
536    /// <ul>
537    /// <li>
538    /// <p><code>status:enabled</code></p></li>
539    /// <li>
540    /// <p><code>status:disabled</code></p></li>
541    /// </ul>
542    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
543    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html">Expiring data by using Amazon Keyspaces Time to Live (TTL)</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
544    pub fn set_ttl(mut self, input: ::std::option::Option<crate::types::TimeToLive>) -> Self {
545        self.ttl = input;
546        self
547    }
548    /// <p>Enables Time to Live custom settings for the table. The options are:</p>
549    /// <ul>
550    /// <li>
551    /// <p><code>status:enabled</code></p></li>
552    /// <li>
553    /// <p><code>status:disabled</code></p></li>
554    /// </ul>
555    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
556    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html">Expiring data by using Amazon Keyspaces Time to Live (TTL)</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
557    pub fn get_ttl(&self) -> &::std::option::Option<crate::types::TimeToLive> {
558        &self.ttl
559    }
560    /// <p>The default Time to Live setting in seconds for the table.</p>
561    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl">Setting the default TTL value for a table</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
562    pub fn default_time_to_live(mut self, input: i32) -> Self {
563        self.default_time_to_live = ::std::option::Option::Some(input);
564        self
565    }
566    /// <p>The default Time to Live setting in seconds for the table.</p>
567    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl">Setting the default TTL value for a table</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
568    pub fn set_default_time_to_live(mut self, input: ::std::option::Option<i32>) -> Self {
569        self.default_time_to_live = input;
570        self
571    }
572    /// <p>The default Time to Live setting in seconds for the table.</p>
573    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl">Setting the default TTL value for a table</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
574    pub fn get_default_time_to_live(&self) -> &::std::option::Option<i32> {
575        &self.default_time_to_live
576    }
577    /// Appends an item to `tags`.
578    ///
579    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
580    ///
581    /// <p>A list of key-value pair tags to be attached to the resource.</p>
582    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html">Adding tags and labels to Amazon Keyspaces resources</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
583    pub fn tags(mut self, input: crate::types::Tag) -> Self {
584        let mut v = self.tags.unwrap_or_default();
585        v.push(input);
586        self.tags = ::std::option::Option::Some(v);
587        self
588    }
589    /// <p>A list of key-value pair tags to be attached to the resource.</p>
590    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html">Adding tags and labels to Amazon Keyspaces resources</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
591    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
592        self.tags = input;
593        self
594    }
595    /// <p>A list of key-value pair tags to be attached to the resource.</p>
596    /// <p>For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html">Adding tags and labels to Amazon Keyspaces resources</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
597    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
598        &self.tags
599    }
600    /// <p>Enables client-side timestamps for the table. By default, the setting is disabled. You can enable client-side timestamps with the following option:</p>
601    /// <ul>
602    /// <li>
603    /// <p><code>status: "enabled"</code></p></li>
604    /// </ul>
605    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
606    pub fn client_side_timestamps(mut self, input: crate::types::ClientSideTimestamps) -> Self {
607        self.client_side_timestamps = ::std::option::Option::Some(input);
608        self
609    }
610    /// <p>Enables client-side timestamps for the table. By default, the setting is disabled. You can enable client-side timestamps with the following option:</p>
611    /// <ul>
612    /// <li>
613    /// <p><code>status: "enabled"</code></p></li>
614    /// </ul>
615    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
616    pub fn set_client_side_timestamps(mut self, input: ::std::option::Option<crate::types::ClientSideTimestamps>) -> Self {
617        self.client_side_timestamps = input;
618        self
619    }
620    /// <p>Enables client-side timestamps for the table. By default, the setting is disabled. You can enable client-side timestamps with the following option:</p>
621    /// <ul>
622    /// <li>
623    /// <p><code>status: "enabled"</code></p></li>
624    /// </ul>
625    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
626    pub fn get_client_side_timestamps(&self) -> &::std::option::Option<crate::types::ClientSideTimestamps> {
627        &self.client_side_timestamps
628    }
629    /// <p>The optional auto scaling settings for a table in provisioned capacity mode. Specifies if the service can manage throughput capacity automatically on your behalf.</p>
630    /// <p>Auto scaling helps you provision throughput capacity for variable workloads efficiently by increasing and decreasing your table's read and write capacity automatically in response to application traffic. For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html">Managing throughput capacity automatically with Amazon Keyspaces auto scaling</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
631    /// <p>By default, auto scaling is disabled for a table.</p>
632    pub fn auto_scaling_specification(mut self, input: crate::types::AutoScalingSpecification) -> Self {
633        self.auto_scaling_specification = ::std::option::Option::Some(input);
634        self
635    }
636    /// <p>The optional auto scaling settings for a table in provisioned capacity mode. Specifies if the service can manage throughput capacity automatically on your behalf.</p>
637    /// <p>Auto scaling helps you provision throughput capacity for variable workloads efficiently by increasing and decreasing your table's read and write capacity automatically in response to application traffic. For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html">Managing throughput capacity automatically with Amazon Keyspaces auto scaling</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
638    /// <p>By default, auto scaling is disabled for a table.</p>
639    pub fn set_auto_scaling_specification(mut self, input: ::std::option::Option<crate::types::AutoScalingSpecification>) -> Self {
640        self.auto_scaling_specification = input;
641        self
642    }
643    /// <p>The optional auto scaling settings for a table in provisioned capacity mode. Specifies if the service can manage throughput capacity automatically on your behalf.</p>
644    /// <p>Auto scaling helps you provision throughput capacity for variable workloads efficiently by increasing and decreasing your table's read and write capacity automatically in response to application traffic. For more information, see <a href="https://docs.aws.amazon.com/keyspaces/latest/devguide/autoscaling.html">Managing throughput capacity automatically with Amazon Keyspaces auto scaling</a> in the <i>Amazon Keyspaces Developer Guide</i>.</p>
645    /// <p>By default, auto scaling is disabled for a table.</p>
646    pub fn get_auto_scaling_specification(&self) -> &::std::option::Option<crate::types::AutoScalingSpecification> {
647        &self.auto_scaling_specification
648    }
649    /// Appends an item to `replica_specifications`.
650    ///
651    /// To override the contents of this collection use [`set_replica_specifications`](Self::set_replica_specifications).
652    ///
653    /// <p>The optional Amazon Web Services Region specific settings of a multi-Region table. These settings overwrite the general settings of the table for the specified Region.</p>
654    /// <p>For a multi-Region table in provisioned capacity mode, you can configure the table's read capacity differently for each Region's replica. The write capacity, however, remains synchronized between all replicas to ensure that there's enough capacity to replicate writes across all Regions. To define the read capacity for a table replica in a specific Region, you can do so by configuring the following parameters.</p>
655    /// <ul>
656    /// <li>
657    /// <p><code>region</code>: The Region where these settings are applied. (Required)</p></li>
658    /// <li>
659    /// <p><code>readCapacityUnits</code>: The provisioned read capacity units. (Optional)</p></li>
660    /// <li>
661    /// <p><code>readCapacityAutoScaling</code>: The read capacity auto scaling settings for the table. (Optional)</p></li>
662    /// </ul>
663    pub fn replica_specifications(mut self, input: crate::types::ReplicaSpecification) -> Self {
664        let mut v = self.replica_specifications.unwrap_or_default();
665        v.push(input);
666        self.replica_specifications = ::std::option::Option::Some(v);
667        self
668    }
669    /// <p>The optional Amazon Web Services Region specific settings of a multi-Region table. These settings overwrite the general settings of the table for the specified Region.</p>
670    /// <p>For a multi-Region table in provisioned capacity mode, you can configure the table's read capacity differently for each Region's replica. The write capacity, however, remains synchronized between all replicas to ensure that there's enough capacity to replicate writes across all Regions. To define the read capacity for a table replica in a specific Region, you can do so by configuring the following parameters.</p>
671    /// <ul>
672    /// <li>
673    /// <p><code>region</code>: The Region where these settings are applied. (Required)</p></li>
674    /// <li>
675    /// <p><code>readCapacityUnits</code>: The provisioned read capacity units. (Optional)</p></li>
676    /// <li>
677    /// <p><code>readCapacityAutoScaling</code>: The read capacity auto scaling settings for the table. (Optional)</p></li>
678    /// </ul>
679    pub fn set_replica_specifications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>>) -> Self {
680        self.replica_specifications = input;
681        self
682    }
683    /// <p>The optional Amazon Web Services Region specific settings of a multi-Region table. These settings overwrite the general settings of the table for the specified Region.</p>
684    /// <p>For a multi-Region table in provisioned capacity mode, you can configure the table's read capacity differently for each Region's replica. The write capacity, however, remains synchronized between all replicas to ensure that there's enough capacity to replicate writes across all Regions. To define the read capacity for a table replica in a specific Region, you can do so by configuring the following parameters.</p>
685    /// <ul>
686    /// <li>
687    /// <p><code>region</code>: The Region where these settings are applied. (Required)</p></li>
688    /// <li>
689    /// <p><code>readCapacityUnits</code>: The provisioned read capacity units. (Optional)</p></li>
690    /// <li>
691    /// <p><code>readCapacityAutoScaling</code>: The read capacity auto scaling settings for the table. (Optional)</p></li>
692    /// </ul>
693    pub fn get_replica_specifications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>> {
694        &self.replica_specifications
695    }
696    /// <p>The CDC stream settings of the table.</p>
697    pub fn cdc_specification(mut self, input: crate::types::CdcSpecification) -> Self {
698        self.cdc_specification = ::std::option::Option::Some(input);
699        self
700    }
701    /// <p>The CDC stream settings of the table.</p>
702    pub fn set_cdc_specification(mut self, input: ::std::option::Option<crate::types::CdcSpecification>) -> Self {
703        self.cdc_specification = input;
704        self
705    }
706    /// <p>The CDC stream settings of the table.</p>
707    pub fn get_cdc_specification(&self) -> &::std::option::Option<crate::types::CdcSpecification> {
708        &self.cdc_specification
709    }
710    /// Consumes the builder and constructs a [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
711    pub fn build(self) -> ::std::result::Result<crate::operation::create_table::CreateTableInput, ::aws_smithy_types::error::operation::BuildError> {
712        ::std::result::Result::Ok(crate::operation::create_table::CreateTableInput {
713            keyspace_name: self.keyspace_name,
714            table_name: self.table_name,
715            schema_definition: self.schema_definition,
716            comment: self.comment,
717            capacity_specification: self.capacity_specification,
718            encryption_specification: self.encryption_specification,
719            point_in_time_recovery: self.point_in_time_recovery,
720            ttl: self.ttl,
721            default_time_to_live: self.default_time_to_live,
722            tags: self.tags,
723            client_side_timestamps: self.client_side_timestamps,
724            auto_scaling_specification: self.auto_scaling_specification,
725            replica_specifications: self.replica_specifications,
726            cdc_specification: self.cdc_specification,
727        })
728    }
729}