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}
108impl CreateTableInput {
109    /// <p>The name of the keyspace that the table is going to be created in.</p>
110    pub fn keyspace_name(&self) -> ::std::option::Option<&str> {
111        self.keyspace_name.as_deref()
112    }
113    /// <p>The name of the table.</p>
114    pub fn table_name(&self) -> ::std::option::Option<&str> {
115        self.table_name.as_deref()
116    }
117    /// <p>The <code>schemaDefinition</code> consists of the following parameters.</p>
118    /// <p>For each column to be created:</p>
119    /// <ul>
120    /// <li>
121    /// <p><code>name</code> - The name of the column.</p></li>
122    /// <li>
123    /// <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>
124    /// </ul>
125    /// <p>The primary key of the table consists of the following columns:</p>
126    /// <ul>
127    /// <li>
128    /// <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>
129    /// <li>
130    /// <p><code>name</code> - The name of each partition key column.</p></li>
131    /// <li>
132    /// <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>
133    /// <li>
134    /// <p><code>name</code> - The name of the clustering column.</p></li>
135    /// <li>
136    /// <p><code>orderBy</code> - Sets the ascendant (<code>ASC</code>) or descendant (<code>DESC</code>) order modifier.</p>
137    /// <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>
138    /// <li>
139    /// <p><code>name</code> - The name of the column.</p></li>
140    /// <li>
141    /// <p><code>type</code> - An Amazon Keyspaces data type.</p></li>
142    /// </ul>
143    pub fn schema_definition(&self) -> ::std::option::Option<&crate::types::SchemaDefinition> {
144        self.schema_definition.as_ref()
145    }
146    /// <p>This parameter allows to enter a description of the table.</p>
147    pub fn comment(&self) -> ::std::option::Option<&crate::types::Comment> {
148        self.comment.as_ref()
149    }
150    /// <p>Specifies the read/write throughput capacity mode for the table. The options are:</p>
151    /// <ul>
152    /// <li>
153    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
154    /// <li>
155    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
156    /// </ul>
157    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
158    /// <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>
159    pub fn capacity_specification(&self) -> ::std::option::Option<&crate::types::CapacitySpecification> {
160        self.capacity_specification.as_ref()
161    }
162    /// <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>
163    /// <ul>
164    /// <li>
165    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
166    /// <li>
167    /// <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>
168    /// </ul>
169    /// <p>The default is <code>type:AWS_OWNED_KMS_KEY</code>.</p>
170    /// <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>
171    pub fn encryption_specification(&self) -> ::std::option::Option<&crate::types::EncryptionSpecification> {
172        self.encryption_specification.as_ref()
173    }
174    /// <p>Specifies if <code>pointInTimeRecovery</code> is enabled or disabled for the table. The options are:</p>
175    /// <ul>
176    /// <li>
177    /// <p><code>status=ENABLED</code></p></li>
178    /// <li>
179    /// <p><code>status=DISABLED</code></p></li>
180    /// </ul>
181    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
182    /// <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>
183    pub fn point_in_time_recovery(&self) -> ::std::option::Option<&crate::types::PointInTimeRecovery> {
184        self.point_in_time_recovery.as_ref()
185    }
186    /// <p>Enables Time to Live custom settings for the table. The options are:</p>
187    /// <ul>
188    /// <li>
189    /// <p><code>status:enabled</code></p></li>
190    /// <li>
191    /// <p><code>status:disabled</code></p></li>
192    /// </ul>
193    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
194    /// <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>
195    pub fn ttl(&self) -> ::std::option::Option<&crate::types::TimeToLive> {
196        self.ttl.as_ref()
197    }
198    /// <p>The default Time to Live setting in seconds for the table.</p>
199    /// <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>
200    pub fn default_time_to_live(&self) -> ::std::option::Option<i32> {
201        self.default_time_to_live
202    }
203    /// <p>A list of key-value pair tags to be attached to the resource.</p>
204    /// <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>
205    ///
206    /// 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()`.
207    pub fn tags(&self) -> &[crate::types::Tag] {
208        self.tags.as_deref().unwrap_or_default()
209    }
210    /// <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>
211    /// <ul>
212    /// <li>
213    /// <p><code>status: "enabled"</code></p></li>
214    /// </ul>
215    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
216    pub fn client_side_timestamps(&self) -> ::std::option::Option<&crate::types::ClientSideTimestamps> {
217        self.client_side_timestamps.as_ref()
218    }
219    /// <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>
220    /// <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>
221    /// <p>By default, auto scaling is disabled for a table.</p>
222    pub fn auto_scaling_specification(&self) -> ::std::option::Option<&crate::types::AutoScalingSpecification> {
223        self.auto_scaling_specification.as_ref()
224    }
225    /// <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>
226    /// <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>
227    /// <ul>
228    /// <li>
229    /// <p><code>region</code>: The Region where these settings are applied. (Required)</p></li>
230    /// <li>
231    /// <p><code>readCapacityUnits</code>: The provisioned read capacity units. (Optional)</p></li>
232    /// <li>
233    /// <p><code>readCapacityAutoScaling</code>: The read capacity auto scaling settings for the table. (Optional)</p></li>
234    /// </ul>
235    ///
236    /// 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()`.
237    pub fn replica_specifications(&self) -> &[crate::types::ReplicaSpecification] {
238        self.replica_specifications.as_deref().unwrap_or_default()
239    }
240}
241impl CreateTableInput {
242    /// Creates a new builder-style object to manufacture [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
243    pub fn builder() -> crate::operation::create_table::builders::CreateTableInputBuilder {
244        crate::operation::create_table::builders::CreateTableInputBuilder::default()
245    }
246}
247
248/// A builder for [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
249#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
250#[non_exhaustive]
251pub struct CreateTableInputBuilder {
252    pub(crate) keyspace_name: ::std::option::Option<::std::string::String>,
253    pub(crate) table_name: ::std::option::Option<::std::string::String>,
254    pub(crate) schema_definition: ::std::option::Option<crate::types::SchemaDefinition>,
255    pub(crate) comment: ::std::option::Option<crate::types::Comment>,
256    pub(crate) capacity_specification: ::std::option::Option<crate::types::CapacitySpecification>,
257    pub(crate) encryption_specification: ::std::option::Option<crate::types::EncryptionSpecification>,
258    pub(crate) point_in_time_recovery: ::std::option::Option<crate::types::PointInTimeRecovery>,
259    pub(crate) ttl: ::std::option::Option<crate::types::TimeToLive>,
260    pub(crate) default_time_to_live: ::std::option::Option<i32>,
261    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
262    pub(crate) client_side_timestamps: ::std::option::Option<crate::types::ClientSideTimestamps>,
263    pub(crate) auto_scaling_specification: ::std::option::Option<crate::types::AutoScalingSpecification>,
264    pub(crate) replica_specifications: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>>,
265}
266impl CreateTableInputBuilder {
267    /// <p>The name of the keyspace that the table is going to be created in.</p>
268    /// This field is required.
269    pub fn keyspace_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
270        self.keyspace_name = ::std::option::Option::Some(input.into());
271        self
272    }
273    /// <p>The name of the keyspace that the table is going to be created in.</p>
274    pub fn set_keyspace_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
275        self.keyspace_name = input;
276        self
277    }
278    /// <p>The name of the keyspace that the table is going to be created in.</p>
279    pub fn get_keyspace_name(&self) -> &::std::option::Option<::std::string::String> {
280        &self.keyspace_name
281    }
282    /// <p>The name of the table.</p>
283    /// This field is required.
284    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
285        self.table_name = ::std::option::Option::Some(input.into());
286        self
287    }
288    /// <p>The name of the table.</p>
289    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
290        self.table_name = input;
291        self
292    }
293    /// <p>The name of the table.</p>
294    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
295        &self.table_name
296    }
297    /// <p>The <code>schemaDefinition</code> consists of the following parameters.</p>
298    /// <p>For each column to be created:</p>
299    /// <ul>
300    /// <li>
301    /// <p><code>name</code> - The name of the column.</p></li>
302    /// <li>
303    /// <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>
304    /// </ul>
305    /// <p>The primary key of the table consists of the following columns:</p>
306    /// <ul>
307    /// <li>
308    /// <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>
309    /// <li>
310    /// <p><code>name</code> - The name of each partition key column.</p></li>
311    /// <li>
312    /// <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>
313    /// <li>
314    /// <p><code>name</code> - The name of the clustering column.</p></li>
315    /// <li>
316    /// <p><code>orderBy</code> - Sets the ascendant (<code>ASC</code>) or descendant (<code>DESC</code>) order modifier.</p>
317    /// <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>
318    /// <li>
319    /// <p><code>name</code> - The name of the column.</p></li>
320    /// <li>
321    /// <p><code>type</code> - An Amazon Keyspaces data type.</p></li>
322    /// </ul>
323    /// This field is required.
324    pub fn schema_definition(mut self, input: crate::types::SchemaDefinition) -> Self {
325        self.schema_definition = ::std::option::Option::Some(input);
326        self
327    }
328    /// <p>The <code>schemaDefinition</code> consists of the following parameters.</p>
329    /// <p>For each column to be created:</p>
330    /// <ul>
331    /// <li>
332    /// <p><code>name</code> - The name of the column.</p></li>
333    /// <li>
334    /// <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>
335    /// </ul>
336    /// <p>The primary key of the table consists of the following columns:</p>
337    /// <ul>
338    /// <li>
339    /// <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>
340    /// <li>
341    /// <p><code>name</code> - The name of each partition key column.</p></li>
342    /// <li>
343    /// <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>
344    /// <li>
345    /// <p><code>name</code> - The name of the clustering column.</p></li>
346    /// <li>
347    /// <p><code>orderBy</code> - Sets the ascendant (<code>ASC</code>) or descendant (<code>DESC</code>) order modifier.</p>
348    /// <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>
349    /// <li>
350    /// <p><code>name</code> - The name of the column.</p></li>
351    /// <li>
352    /// <p><code>type</code> - An Amazon Keyspaces data type.</p></li>
353    /// </ul>
354    pub fn set_schema_definition(mut self, input: ::std::option::Option<crate::types::SchemaDefinition>) -> Self {
355        self.schema_definition = input;
356        self
357    }
358    /// <p>The <code>schemaDefinition</code> consists of the following parameters.</p>
359    /// <p>For each column to be created:</p>
360    /// <ul>
361    /// <li>
362    /// <p><code>name</code> - The name of the column.</p></li>
363    /// <li>
364    /// <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>
365    /// </ul>
366    /// <p>The primary key of the table consists of the following columns:</p>
367    /// <ul>
368    /// <li>
369    /// <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>
370    /// <li>
371    /// <p><code>name</code> - The name of each partition key column.</p></li>
372    /// <li>
373    /// <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>
374    /// <li>
375    /// <p><code>name</code> - The name of the clustering column.</p></li>
376    /// <li>
377    /// <p><code>orderBy</code> - Sets the ascendant (<code>ASC</code>) or descendant (<code>DESC</code>) order modifier.</p>
378    /// <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>
379    /// <li>
380    /// <p><code>name</code> - The name of the column.</p></li>
381    /// <li>
382    /// <p><code>type</code> - An Amazon Keyspaces data type.</p></li>
383    /// </ul>
384    pub fn get_schema_definition(&self) -> &::std::option::Option<crate::types::SchemaDefinition> {
385        &self.schema_definition
386    }
387    /// <p>This parameter allows to enter a description of the table.</p>
388    pub fn comment(mut self, input: crate::types::Comment) -> Self {
389        self.comment = ::std::option::Option::Some(input);
390        self
391    }
392    /// <p>This parameter allows to enter a description of the table.</p>
393    pub fn set_comment(mut self, input: ::std::option::Option<crate::types::Comment>) -> Self {
394        self.comment = input;
395        self
396    }
397    /// <p>This parameter allows to enter a description of the table.</p>
398    pub fn get_comment(&self) -> &::std::option::Option<crate::types::Comment> {
399        &self.comment
400    }
401    /// <p>Specifies the read/write throughput capacity mode for the table. The options are:</p>
402    /// <ul>
403    /// <li>
404    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
405    /// <li>
406    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
407    /// </ul>
408    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
409    /// <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>
410    pub fn capacity_specification(mut self, input: crate::types::CapacitySpecification) -> Self {
411        self.capacity_specification = ::std::option::Option::Some(input);
412        self
413    }
414    /// <p>Specifies the read/write throughput capacity mode for the table. The options are:</p>
415    /// <ul>
416    /// <li>
417    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
418    /// <li>
419    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
420    /// </ul>
421    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
422    /// <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>
423    pub fn set_capacity_specification(mut self, input: ::std::option::Option<crate::types::CapacitySpecification>) -> Self {
424        self.capacity_specification = input;
425        self
426    }
427    /// <p>Specifies the read/write throughput capacity mode for the table. The options are:</p>
428    /// <ul>
429    /// <li>
430    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
431    /// <li>
432    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
433    /// </ul>
434    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
435    /// <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>
436    pub fn get_capacity_specification(&self) -> &::std::option::Option<crate::types::CapacitySpecification> {
437        &self.capacity_specification
438    }
439    /// <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>
440    /// <ul>
441    /// <li>
442    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
443    /// <li>
444    /// <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>
445    /// </ul>
446    /// <p>The default is <code>type:AWS_OWNED_KMS_KEY</code>.</p>
447    /// <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>
448    pub fn encryption_specification(mut self, input: crate::types::EncryptionSpecification) -> Self {
449        self.encryption_specification = ::std::option::Option::Some(input);
450        self
451    }
452    /// <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>
453    /// <ul>
454    /// <li>
455    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
456    /// <li>
457    /// <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>
458    /// </ul>
459    /// <p>The default is <code>type:AWS_OWNED_KMS_KEY</code>.</p>
460    /// <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>
461    pub fn set_encryption_specification(mut self, input: ::std::option::Option<crate::types::EncryptionSpecification>) -> Self {
462        self.encryption_specification = input;
463        self
464    }
465    /// <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>
466    /// <ul>
467    /// <li>
468    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
469    /// <li>
470    /// <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>
471    /// </ul>
472    /// <p>The default is <code>type:AWS_OWNED_KMS_KEY</code>.</p>
473    /// <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>
474    pub fn get_encryption_specification(&self) -> &::std::option::Option<crate::types::EncryptionSpecification> {
475        &self.encryption_specification
476    }
477    /// <p>Specifies if <code>pointInTimeRecovery</code> is enabled or disabled for the table. The options are:</p>
478    /// <ul>
479    /// <li>
480    /// <p><code>status=ENABLED</code></p></li>
481    /// <li>
482    /// <p><code>status=DISABLED</code></p></li>
483    /// </ul>
484    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
485    /// <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>
486    pub fn point_in_time_recovery(mut self, input: crate::types::PointInTimeRecovery) -> Self {
487        self.point_in_time_recovery = ::std::option::Option::Some(input);
488        self
489    }
490    /// <p>Specifies if <code>pointInTimeRecovery</code> is enabled or disabled for the table. The options are:</p>
491    /// <ul>
492    /// <li>
493    /// <p><code>status=ENABLED</code></p></li>
494    /// <li>
495    /// <p><code>status=DISABLED</code></p></li>
496    /// </ul>
497    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
498    /// <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>
499    pub fn set_point_in_time_recovery(mut self, input: ::std::option::Option<crate::types::PointInTimeRecovery>) -> Self {
500        self.point_in_time_recovery = input;
501        self
502    }
503    /// <p>Specifies if <code>pointInTimeRecovery</code> is enabled or disabled for the table. The options are:</p>
504    /// <ul>
505    /// <li>
506    /// <p><code>status=ENABLED</code></p></li>
507    /// <li>
508    /// <p><code>status=DISABLED</code></p></li>
509    /// </ul>
510    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
511    /// <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>
512    pub fn get_point_in_time_recovery(&self) -> &::std::option::Option<crate::types::PointInTimeRecovery> {
513        &self.point_in_time_recovery
514    }
515    /// <p>Enables Time to Live custom settings for the table. The options are:</p>
516    /// <ul>
517    /// <li>
518    /// <p><code>status:enabled</code></p></li>
519    /// <li>
520    /// <p><code>status:disabled</code></p></li>
521    /// </ul>
522    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
523    /// <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>
524    pub fn ttl(mut self, input: crate::types::TimeToLive) -> Self {
525        self.ttl = ::std::option::Option::Some(input);
526        self
527    }
528    /// <p>Enables Time to Live custom settings for the table. The options are:</p>
529    /// <ul>
530    /// <li>
531    /// <p><code>status:enabled</code></p></li>
532    /// <li>
533    /// <p><code>status:disabled</code></p></li>
534    /// </ul>
535    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
536    /// <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>
537    pub fn set_ttl(mut self, input: ::std::option::Option<crate::types::TimeToLive>) -> Self {
538        self.ttl = input;
539        self
540    }
541    /// <p>Enables Time to Live custom settings for the table. The options are:</p>
542    /// <ul>
543    /// <li>
544    /// <p><code>status:enabled</code></p></li>
545    /// <li>
546    /// <p><code>status:disabled</code></p></li>
547    /// </ul>
548    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
549    /// <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>
550    pub fn get_ttl(&self) -> &::std::option::Option<crate::types::TimeToLive> {
551        &self.ttl
552    }
553    /// <p>The default Time to Live setting in seconds for the table.</p>
554    /// <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>
555    pub fn default_time_to_live(mut self, input: i32) -> Self {
556        self.default_time_to_live = ::std::option::Option::Some(input);
557        self
558    }
559    /// <p>The default Time to Live setting in seconds for the table.</p>
560    /// <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>
561    pub fn set_default_time_to_live(mut self, input: ::std::option::Option<i32>) -> Self {
562        self.default_time_to_live = input;
563        self
564    }
565    /// <p>The default Time to Live setting in seconds for the table.</p>
566    /// <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>
567    pub fn get_default_time_to_live(&self) -> &::std::option::Option<i32> {
568        &self.default_time_to_live
569    }
570    /// Appends an item to `tags`.
571    ///
572    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
573    ///
574    /// <p>A list of key-value pair tags to be attached to the resource.</p>
575    /// <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>
576    pub fn tags(mut self, input: crate::types::Tag) -> Self {
577        let mut v = self.tags.unwrap_or_default();
578        v.push(input);
579        self.tags = ::std::option::Option::Some(v);
580        self
581    }
582    /// <p>A list of key-value pair tags to be attached to the resource.</p>
583    /// <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>
584    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
585        self.tags = input;
586        self
587    }
588    /// <p>A list of key-value pair tags to be attached to the resource.</p>
589    /// <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>
590    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
591        &self.tags
592    }
593    /// <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>
594    /// <ul>
595    /// <li>
596    /// <p><code>status: "enabled"</code></p></li>
597    /// </ul>
598    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
599    pub fn client_side_timestamps(mut self, input: crate::types::ClientSideTimestamps) -> Self {
600        self.client_side_timestamps = ::std::option::Option::Some(input);
601        self
602    }
603    /// <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>
604    /// <ul>
605    /// <li>
606    /// <p><code>status: "enabled"</code></p></li>
607    /// </ul>
608    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
609    pub fn set_client_side_timestamps(mut self, input: ::std::option::Option<crate::types::ClientSideTimestamps>) -> Self {
610        self.client_side_timestamps = input;
611        self
612    }
613    /// <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>
614    /// <ul>
615    /// <li>
616    /// <p><code>status: "enabled"</code></p></li>
617    /// </ul>
618    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
619    pub fn get_client_side_timestamps(&self) -> &::std::option::Option<crate::types::ClientSideTimestamps> {
620        &self.client_side_timestamps
621    }
622    /// <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>
623    /// <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>
624    /// <p>By default, auto scaling is disabled for a table.</p>
625    pub fn auto_scaling_specification(mut self, input: crate::types::AutoScalingSpecification) -> Self {
626        self.auto_scaling_specification = ::std::option::Option::Some(input);
627        self
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 set_auto_scaling_specification(mut self, input: ::std::option::Option<crate::types::AutoScalingSpecification>) -> Self {
633        self.auto_scaling_specification = 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 get_auto_scaling_specification(&self) -> &::std::option::Option<crate::types::AutoScalingSpecification> {
640        &self.auto_scaling_specification
641    }
642    /// Appends an item to `replica_specifications`.
643    ///
644    /// To override the contents of this collection use [`set_replica_specifications`](Self::set_replica_specifications).
645    ///
646    /// <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>
647    /// <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>
648    /// <ul>
649    /// <li>
650    /// <p><code>region</code>: The Region where these settings are applied. (Required)</p></li>
651    /// <li>
652    /// <p><code>readCapacityUnits</code>: The provisioned read capacity units. (Optional)</p></li>
653    /// <li>
654    /// <p><code>readCapacityAutoScaling</code>: The read capacity auto scaling settings for the table. (Optional)</p></li>
655    /// </ul>
656    pub fn replica_specifications(mut self, input: crate::types::ReplicaSpecification) -> Self {
657        let mut v = self.replica_specifications.unwrap_or_default();
658        v.push(input);
659        self.replica_specifications = ::std::option::Option::Some(v);
660        self
661    }
662    /// <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>
663    /// <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>
664    /// <ul>
665    /// <li>
666    /// <p><code>region</code>: The Region where these settings are applied. (Required)</p></li>
667    /// <li>
668    /// <p><code>readCapacityUnits</code>: The provisioned read capacity units. (Optional)</p></li>
669    /// <li>
670    /// <p><code>readCapacityAutoScaling</code>: The read capacity auto scaling settings for the table. (Optional)</p></li>
671    /// </ul>
672    pub fn set_replica_specifications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>>) -> Self {
673        self.replica_specifications = input;
674        self
675    }
676    /// <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>
677    /// <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>
678    /// <ul>
679    /// <li>
680    /// <p><code>region</code>: The Region where these settings are applied. (Required)</p></li>
681    /// <li>
682    /// <p><code>readCapacityUnits</code>: The provisioned read capacity units. (Optional)</p></li>
683    /// <li>
684    /// <p><code>readCapacityAutoScaling</code>: The read capacity auto scaling settings for the table. (Optional)</p></li>
685    /// </ul>
686    pub fn get_replica_specifications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>> {
687        &self.replica_specifications
688    }
689    /// Consumes the builder and constructs a [`CreateTableInput`](crate::operation::create_table::CreateTableInput).
690    pub fn build(self) -> ::std::result::Result<crate::operation::create_table::CreateTableInput, ::aws_smithy_types::error::operation::BuildError> {
691        ::std::result::Result::Ok(crate::operation::create_table::CreateTableInput {
692            keyspace_name: self.keyspace_name,
693            table_name: self.table_name,
694            schema_definition: self.schema_definition,
695            comment: self.comment,
696            capacity_specification: self.capacity_specification,
697            encryption_specification: self.encryption_specification,
698            point_in_time_recovery: self.point_in_time_recovery,
699            ttl: self.ttl,
700            default_time_to_live: self.default_time_to_live,
701            tags: self.tags,
702            client_side_timestamps: self.client_side_timestamps,
703            auto_scaling_specification: self.auto_scaling_specification,
704            replica_specifications: self.replica_specifications,
705        })
706    }
707}