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}