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