aws_sdk_keyspaces/operation/update_table/
_update_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 UpdateTableInput {
6    /// <p>The name of the keyspace the specified table is stored 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>For each column to be added to the specified table:</p>
11    /// <ul>
12    /// <li>
13    /// <p><code>name</code> - The name of the column.</p></li>
14    /// <li>
15    /// <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>
16    /// </ul>
17    pub add_columns: ::std::option::Option<::std::vec::Vec<crate::types::ColumnDefinition>>,
18    /// <p>Modifies the read/write throughput capacity mode for the table. The options are:</p>
19    /// <ul>
20    /// <li>
21    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
22    /// <li>
23    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
24    /// </ul>
25    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
26    /// <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>
27    pub capacity_specification: ::std::option::Option<crate::types::CapacitySpecification>,
28    /// <p>Modifies the encryption settings of the table. You can choose one of the following KMS key (KMS key):</p>
29    /// <ul>
30    /// <li>
31    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
32    /// <li>
33    /// <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>
34    /// </ul>
35    /// <p>The default is <code>AWS_OWNED_KMS_KEY</code>.</p>
36    /// <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>
37    pub encryption_specification: ::std::option::Option<crate::types::EncryptionSpecification>,
38    /// <p>Modifies the <code>pointInTimeRecovery</code> settings of the table. The options are:</p>
39    /// <ul>
40    /// <li>
41    /// <p><code>status=ENABLED</code></p></li>
42    /// <li>
43    /// <p><code>status=DISABLED</code></p></li>
44    /// </ul>
45    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
46    /// <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>
47    pub point_in_time_recovery: ::std::option::Option<crate::types::PointInTimeRecovery>,
48    /// <p>Modifies Time to Live custom settings for the table. The options are:</p>
49    /// <ul>
50    /// <li>
51    /// <p><code>status:enabled</code></p></li>
52    /// <li>
53    /// <p><code>status:disabled</code></p></li>
54    /// </ul>
55    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
56    /// <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>
57    pub ttl: ::std::option::Option<crate::types::TimeToLive>,
58    /// <p>The default Time to Live setting in seconds for the table.</p>
59    /// <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>
60    pub default_time_to_live: ::std::option::Option<i32>,
61    /// <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>
62    /// <ul>
63    /// <li>
64    /// <p><code>status: "enabled"</code></p></li>
65    /// </ul>
66    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
67    pub client_side_timestamps: ::std::option::Option<crate::types::ClientSideTimestamps>,
68    /// <p>The optional auto scaling settings to update for a table in provisioned capacity mode. Specifies if the service can manage throughput capacity of a provisioned table automatically on your behalf. Amazon Keyspaces 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.</p>
69    /// <p>If auto scaling is already enabled for the table, you can use <code>UpdateTable</code> to update the minimum and maximum values or the auto scaling policy settings independently.</p>
70    /// <p>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>
71    pub auto_scaling_specification: ::std::option::Option<crate::types::AutoScalingSpecification>,
72    /// <p>The Region specific settings of a multi-Regional table.</p>
73    pub replica_specifications: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>>,
74    /// <p>The CDC stream settings of the table.</p>
75    pub cdc_specification: ::std::option::Option<crate::types::CdcSpecification>,
76}
77impl UpdateTableInput {
78    /// <p>The name of the keyspace the specified table is stored in.</p>
79    pub fn keyspace_name(&self) -> ::std::option::Option<&str> {
80        self.keyspace_name.as_deref()
81    }
82    /// <p>The name of the table.</p>
83    pub fn table_name(&self) -> ::std::option::Option<&str> {
84        self.table_name.as_deref()
85    }
86    /// <p>For each column to be added to the specified table:</p>
87    /// <ul>
88    /// <li>
89    /// <p><code>name</code> - The name of the column.</p></li>
90    /// <li>
91    /// <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>
92    /// </ul>
93    ///
94    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.add_columns.is_none()`.
95    pub fn add_columns(&self) -> &[crate::types::ColumnDefinition] {
96        self.add_columns.as_deref().unwrap_or_default()
97    }
98    /// <p>Modifies the read/write throughput capacity mode for the table. The options are:</p>
99    /// <ul>
100    /// <li>
101    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
102    /// <li>
103    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
104    /// </ul>
105    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
106    /// <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>
107    pub fn capacity_specification(&self) -> ::std::option::Option<&crate::types::CapacitySpecification> {
108        self.capacity_specification.as_ref()
109    }
110    /// <p>Modifies the encryption settings of the table. You can choose one of the following KMS key (KMS key):</p>
111    /// <ul>
112    /// <li>
113    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
114    /// <li>
115    /// <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>
116    /// </ul>
117    /// <p>The default is <code>AWS_OWNED_KMS_KEY</code>.</p>
118    /// <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>
119    pub fn encryption_specification(&self) -> ::std::option::Option<&crate::types::EncryptionSpecification> {
120        self.encryption_specification.as_ref()
121    }
122    /// <p>Modifies the <code>pointInTimeRecovery</code> settings of the table. The options are:</p>
123    /// <ul>
124    /// <li>
125    /// <p><code>status=ENABLED</code></p></li>
126    /// <li>
127    /// <p><code>status=DISABLED</code></p></li>
128    /// </ul>
129    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
130    /// <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>
131    pub fn point_in_time_recovery(&self) -> ::std::option::Option<&crate::types::PointInTimeRecovery> {
132        self.point_in_time_recovery.as_ref()
133    }
134    /// <p>Modifies Time to Live custom settings for the table. The options are:</p>
135    /// <ul>
136    /// <li>
137    /// <p><code>status:enabled</code></p></li>
138    /// <li>
139    /// <p><code>status:disabled</code></p></li>
140    /// </ul>
141    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
142    /// <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>
143    pub fn ttl(&self) -> ::std::option::Option<&crate::types::TimeToLive> {
144        self.ttl.as_ref()
145    }
146    /// <p>The default Time to Live setting in seconds for the table.</p>
147    /// <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>
148    pub fn default_time_to_live(&self) -> ::std::option::Option<i32> {
149        self.default_time_to_live
150    }
151    /// <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>
152    /// <ul>
153    /// <li>
154    /// <p><code>status: "enabled"</code></p></li>
155    /// </ul>
156    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
157    pub fn client_side_timestamps(&self) -> ::std::option::Option<&crate::types::ClientSideTimestamps> {
158        self.client_side_timestamps.as_ref()
159    }
160    /// <p>The optional auto scaling settings to update for a table in provisioned capacity mode. Specifies if the service can manage throughput capacity of a provisioned table automatically on your behalf. Amazon Keyspaces 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.</p>
161    /// <p>If auto scaling is already enabled for the table, you can use <code>UpdateTable</code> to update the minimum and maximum values or the auto scaling policy settings independently.</p>
162    /// <p>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>
163    pub fn auto_scaling_specification(&self) -> ::std::option::Option<&crate::types::AutoScalingSpecification> {
164        self.auto_scaling_specification.as_ref()
165    }
166    /// <p>The Region specific settings of a multi-Regional table.</p>
167    ///
168    /// 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()`.
169    pub fn replica_specifications(&self) -> &[crate::types::ReplicaSpecification] {
170        self.replica_specifications.as_deref().unwrap_or_default()
171    }
172    /// <p>The CDC stream settings of the table.</p>
173    pub fn cdc_specification(&self) -> ::std::option::Option<&crate::types::CdcSpecification> {
174        self.cdc_specification.as_ref()
175    }
176}
177impl UpdateTableInput {
178    /// Creates a new builder-style object to manufacture [`UpdateTableInput`](crate::operation::update_table::UpdateTableInput).
179    pub fn builder() -> crate::operation::update_table::builders::UpdateTableInputBuilder {
180        crate::operation::update_table::builders::UpdateTableInputBuilder::default()
181    }
182}
183
184/// A builder for [`UpdateTableInput`](crate::operation::update_table::UpdateTableInput).
185#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
186#[non_exhaustive]
187pub struct UpdateTableInputBuilder {
188    pub(crate) keyspace_name: ::std::option::Option<::std::string::String>,
189    pub(crate) table_name: ::std::option::Option<::std::string::String>,
190    pub(crate) add_columns: ::std::option::Option<::std::vec::Vec<crate::types::ColumnDefinition>>,
191    pub(crate) capacity_specification: ::std::option::Option<crate::types::CapacitySpecification>,
192    pub(crate) encryption_specification: ::std::option::Option<crate::types::EncryptionSpecification>,
193    pub(crate) point_in_time_recovery: ::std::option::Option<crate::types::PointInTimeRecovery>,
194    pub(crate) ttl: ::std::option::Option<crate::types::TimeToLive>,
195    pub(crate) default_time_to_live: ::std::option::Option<i32>,
196    pub(crate) client_side_timestamps: ::std::option::Option<crate::types::ClientSideTimestamps>,
197    pub(crate) auto_scaling_specification: ::std::option::Option<crate::types::AutoScalingSpecification>,
198    pub(crate) replica_specifications: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>>,
199    pub(crate) cdc_specification: ::std::option::Option<crate::types::CdcSpecification>,
200}
201impl UpdateTableInputBuilder {
202    /// <p>The name of the keyspace the specified table is stored in.</p>
203    /// This field is required.
204    pub fn keyspace_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
205        self.keyspace_name = ::std::option::Option::Some(input.into());
206        self
207    }
208    /// <p>The name of the keyspace the specified table is stored in.</p>
209    pub fn set_keyspace_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
210        self.keyspace_name = input;
211        self
212    }
213    /// <p>The name of the keyspace the specified table is stored in.</p>
214    pub fn get_keyspace_name(&self) -> &::std::option::Option<::std::string::String> {
215        &self.keyspace_name
216    }
217    /// <p>The name of the table.</p>
218    /// This field is required.
219    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
220        self.table_name = ::std::option::Option::Some(input.into());
221        self
222    }
223    /// <p>The name of the table.</p>
224    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
225        self.table_name = input;
226        self
227    }
228    /// <p>The name of the table.</p>
229    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
230        &self.table_name
231    }
232    /// Appends an item to `add_columns`.
233    ///
234    /// To override the contents of this collection use [`set_add_columns`](Self::set_add_columns).
235    ///
236    /// <p>For each column to be added to the specified table:</p>
237    /// <ul>
238    /// <li>
239    /// <p><code>name</code> - The name of the column.</p></li>
240    /// <li>
241    /// <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>
242    /// </ul>
243    pub fn add_columns(mut self, input: crate::types::ColumnDefinition) -> Self {
244        let mut v = self.add_columns.unwrap_or_default();
245        v.push(input);
246        self.add_columns = ::std::option::Option::Some(v);
247        self
248    }
249    /// <p>For each column to be added to the specified table:</p>
250    /// <ul>
251    /// <li>
252    /// <p><code>name</code> - The name of the column.</p></li>
253    /// <li>
254    /// <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>
255    /// </ul>
256    pub fn set_add_columns(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ColumnDefinition>>) -> Self {
257        self.add_columns = input;
258        self
259    }
260    /// <p>For each column to be added to the specified table:</p>
261    /// <ul>
262    /// <li>
263    /// <p><code>name</code> - The name of the column.</p></li>
264    /// <li>
265    /// <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>
266    /// </ul>
267    pub fn get_add_columns(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ColumnDefinition>> {
268        &self.add_columns
269    }
270    /// <p>Modifies the read/write throughput capacity mode for the table. The options are:</p>
271    /// <ul>
272    /// <li>
273    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
274    /// <li>
275    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
276    /// </ul>
277    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
278    /// <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>
279    pub fn capacity_specification(mut self, input: crate::types::CapacitySpecification) -> Self {
280        self.capacity_specification = ::std::option::Option::Some(input);
281        self
282    }
283    /// <p>Modifies the read/write throughput capacity mode for the table. The options are:</p>
284    /// <ul>
285    /// <li>
286    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
287    /// <li>
288    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
289    /// </ul>
290    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
291    /// <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>
292    pub fn set_capacity_specification(mut self, input: ::std::option::Option<crate::types::CapacitySpecification>) -> Self {
293        self.capacity_specification = input;
294        self
295    }
296    /// <p>Modifies the read/write throughput capacity mode for the table. The options are:</p>
297    /// <ul>
298    /// <li>
299    /// <p><code>throughputMode:PAY_PER_REQUEST</code> and</p></li>
300    /// <li>
301    /// <p><code>throughputMode:PROVISIONED</code> - Provisioned capacity mode requires <code>readCapacityUnits</code> and <code>writeCapacityUnits</code> as input.</p></li>
302    /// </ul>
303    /// <p>The default is <code>throughput_mode:PAY_PER_REQUEST</code>.</p>
304    /// <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>
305    pub fn get_capacity_specification(&self) -> &::std::option::Option<crate::types::CapacitySpecification> {
306        &self.capacity_specification
307    }
308    /// <p>Modifies the encryption settings of the table. You can choose one of the following KMS key (KMS key):</p>
309    /// <ul>
310    /// <li>
311    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
312    /// <li>
313    /// <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>
314    /// </ul>
315    /// <p>The default is <code>AWS_OWNED_KMS_KEY</code>.</p>
316    /// <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>
317    pub fn encryption_specification(mut self, input: crate::types::EncryptionSpecification) -> Self {
318        self.encryption_specification = ::std::option::Option::Some(input);
319        self
320    }
321    /// <p>Modifies the encryption settings of the table. You can choose one of the following KMS key (KMS key):</p>
322    /// <ul>
323    /// <li>
324    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
325    /// <li>
326    /// <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>
327    /// </ul>
328    /// <p>The default is <code>AWS_OWNED_KMS_KEY</code>.</p>
329    /// <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>
330    pub fn set_encryption_specification(mut self, input: ::std::option::Option<crate::types::EncryptionSpecification>) -> Self {
331        self.encryption_specification = input;
332        self
333    }
334    /// <p>Modifies the encryption settings of the table. You can choose one of the following KMS key (KMS key):</p>
335    /// <ul>
336    /// <li>
337    /// <p><code>type:AWS_OWNED_KMS_KEY</code> - This key is owned by Amazon Keyspaces.</p></li>
338    /// <li>
339    /// <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>
340    /// </ul>
341    /// <p>The default is <code>AWS_OWNED_KMS_KEY</code>.</p>
342    /// <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>
343    pub fn get_encryption_specification(&self) -> &::std::option::Option<crate::types::EncryptionSpecification> {
344        &self.encryption_specification
345    }
346    /// <p>Modifies the <code>pointInTimeRecovery</code> settings of the table. The options are:</p>
347    /// <ul>
348    /// <li>
349    /// <p><code>status=ENABLED</code></p></li>
350    /// <li>
351    /// <p><code>status=DISABLED</code></p></li>
352    /// </ul>
353    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
354    /// <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>
355    pub fn point_in_time_recovery(mut self, input: crate::types::PointInTimeRecovery) -> Self {
356        self.point_in_time_recovery = ::std::option::Option::Some(input);
357        self
358    }
359    /// <p>Modifies the <code>pointInTimeRecovery</code> settings of the table. The options are:</p>
360    /// <ul>
361    /// <li>
362    /// <p><code>status=ENABLED</code></p></li>
363    /// <li>
364    /// <p><code>status=DISABLED</code></p></li>
365    /// </ul>
366    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
367    /// <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>
368    pub fn set_point_in_time_recovery(mut self, input: ::std::option::Option<crate::types::PointInTimeRecovery>) -> Self {
369        self.point_in_time_recovery = input;
370        self
371    }
372    /// <p>Modifies the <code>pointInTimeRecovery</code> settings of the table. The options are:</p>
373    /// <ul>
374    /// <li>
375    /// <p><code>status=ENABLED</code></p></li>
376    /// <li>
377    /// <p><code>status=DISABLED</code></p></li>
378    /// </ul>
379    /// <p>If it's not specified, the default is <code>status=DISABLED</code>.</p>
380    /// <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>
381    pub fn get_point_in_time_recovery(&self) -> &::std::option::Option<crate::types::PointInTimeRecovery> {
382        &self.point_in_time_recovery
383    }
384    /// <p>Modifies Time to Live custom settings for the table. The options are:</p>
385    /// <ul>
386    /// <li>
387    /// <p><code>status:enabled</code></p></li>
388    /// <li>
389    /// <p><code>status:disabled</code></p></li>
390    /// </ul>
391    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
392    /// <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>
393    pub fn ttl(mut self, input: crate::types::TimeToLive) -> Self {
394        self.ttl = ::std::option::Option::Some(input);
395        self
396    }
397    /// <p>Modifies Time to Live custom settings for the table. The options are:</p>
398    /// <ul>
399    /// <li>
400    /// <p><code>status:enabled</code></p></li>
401    /// <li>
402    /// <p><code>status:disabled</code></p></li>
403    /// </ul>
404    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
405    /// <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>
406    pub fn set_ttl(mut self, input: ::std::option::Option<crate::types::TimeToLive>) -> Self {
407        self.ttl = input;
408        self
409    }
410    /// <p>Modifies Time to Live custom settings for the table. The options are:</p>
411    /// <ul>
412    /// <li>
413    /// <p><code>status:enabled</code></p></li>
414    /// <li>
415    /// <p><code>status:disabled</code></p></li>
416    /// </ul>
417    /// <p>The default is <code>status:disabled</code>. After <code>ttl</code> is enabled, you can't disable it for the table.</p>
418    /// <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>
419    pub fn get_ttl(&self) -> &::std::option::Option<crate::types::TimeToLive> {
420        &self.ttl
421    }
422    /// <p>The default Time to Live setting in seconds for the table.</p>
423    /// <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>
424    pub fn default_time_to_live(mut self, input: i32) -> Self {
425        self.default_time_to_live = ::std::option::Option::Some(input);
426        self
427    }
428    /// <p>The default Time to Live setting in seconds for the table.</p>
429    /// <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>
430    pub fn set_default_time_to_live(mut self, input: ::std::option::Option<i32>) -> Self {
431        self.default_time_to_live = input;
432        self
433    }
434    /// <p>The default Time to Live setting in seconds for the table.</p>
435    /// <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>
436    pub fn get_default_time_to_live(&self) -> &::std::option::Option<i32> {
437        &self.default_time_to_live
438    }
439    /// <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>
440    /// <ul>
441    /// <li>
442    /// <p><code>status: "enabled"</code></p></li>
443    /// </ul>
444    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
445    pub fn client_side_timestamps(mut self, input: crate::types::ClientSideTimestamps) -> Self {
446        self.client_side_timestamps = ::std::option::Option::Some(input);
447        self
448    }
449    /// <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>
450    /// <ul>
451    /// <li>
452    /// <p><code>status: "enabled"</code></p></li>
453    /// </ul>
454    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
455    pub fn set_client_side_timestamps(mut self, input: ::std::option::Option<crate::types::ClientSideTimestamps>) -> Self {
456        self.client_side_timestamps = input;
457        self
458    }
459    /// <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>
460    /// <ul>
461    /// <li>
462    /// <p><code>status: "enabled"</code></p></li>
463    /// </ul>
464    /// <p>Once client-side timestamps are enabled for a table, this setting cannot be disabled.</p>
465    pub fn get_client_side_timestamps(&self) -> &::std::option::Option<crate::types::ClientSideTimestamps> {
466        &self.client_side_timestamps
467    }
468    /// <p>The optional auto scaling settings to update for a table in provisioned capacity mode. Specifies if the service can manage throughput capacity of a provisioned table automatically on your behalf. Amazon Keyspaces 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.</p>
469    /// <p>If auto scaling is already enabled for the table, you can use <code>UpdateTable</code> to update the minimum and maximum values or the auto scaling policy settings independently.</p>
470    /// <p>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>
471    pub fn auto_scaling_specification(mut self, input: crate::types::AutoScalingSpecification) -> Self {
472        self.auto_scaling_specification = ::std::option::Option::Some(input);
473        self
474    }
475    /// <p>The optional auto scaling settings to update for a table in provisioned capacity mode. Specifies if the service can manage throughput capacity of a provisioned table automatically on your behalf. Amazon Keyspaces 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.</p>
476    /// <p>If auto scaling is already enabled for the table, you can use <code>UpdateTable</code> to update the minimum and maximum values or the auto scaling policy settings independently.</p>
477    /// <p>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>
478    pub fn set_auto_scaling_specification(mut self, input: ::std::option::Option<crate::types::AutoScalingSpecification>) -> Self {
479        self.auto_scaling_specification = input;
480        self
481    }
482    /// <p>The optional auto scaling settings to update for a table in provisioned capacity mode. Specifies if the service can manage throughput capacity of a provisioned table automatically on your behalf. Amazon Keyspaces 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.</p>
483    /// <p>If auto scaling is already enabled for the table, you can use <code>UpdateTable</code> to update the minimum and maximum values or the auto scaling policy settings independently.</p>
484    /// <p>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>
485    pub fn get_auto_scaling_specification(&self) -> &::std::option::Option<crate::types::AutoScalingSpecification> {
486        &self.auto_scaling_specification
487    }
488    /// Appends an item to `replica_specifications`.
489    ///
490    /// To override the contents of this collection use [`set_replica_specifications`](Self::set_replica_specifications).
491    ///
492    /// <p>The Region specific settings of a multi-Regional table.</p>
493    pub fn replica_specifications(mut self, input: crate::types::ReplicaSpecification) -> Self {
494        let mut v = self.replica_specifications.unwrap_or_default();
495        v.push(input);
496        self.replica_specifications = ::std::option::Option::Some(v);
497        self
498    }
499    /// <p>The Region specific settings of a multi-Regional table.</p>
500    pub fn set_replica_specifications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>>) -> Self {
501        self.replica_specifications = input;
502        self
503    }
504    /// <p>The Region specific settings of a multi-Regional table.</p>
505    pub fn get_replica_specifications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ReplicaSpecification>> {
506        &self.replica_specifications
507    }
508    /// <p>The CDC stream settings of the table.</p>
509    pub fn cdc_specification(mut self, input: crate::types::CdcSpecification) -> Self {
510        self.cdc_specification = ::std::option::Option::Some(input);
511        self
512    }
513    /// <p>The CDC stream settings of the table.</p>
514    pub fn set_cdc_specification(mut self, input: ::std::option::Option<crate::types::CdcSpecification>) -> Self {
515        self.cdc_specification = input;
516        self
517    }
518    /// <p>The CDC stream settings of the table.</p>
519    pub fn get_cdc_specification(&self) -> &::std::option::Option<crate::types::CdcSpecification> {
520        &self.cdc_specification
521    }
522    /// Consumes the builder and constructs a [`UpdateTableInput`](crate::operation::update_table::UpdateTableInput).
523    pub fn build(self) -> ::std::result::Result<crate::operation::update_table::UpdateTableInput, ::aws_smithy_types::error::operation::BuildError> {
524        ::std::result::Result::Ok(crate::operation::update_table::UpdateTableInput {
525            keyspace_name: self.keyspace_name,
526            table_name: self.table_name,
527            add_columns: self.add_columns,
528            capacity_specification: self.capacity_specification,
529            encryption_specification: self.encryption_specification,
530            point_in_time_recovery: self.point_in_time_recovery,
531            ttl: self.ttl,
532            default_time_to_live: self.default_time_to_live,
533            client_side_timestamps: self.client_side_timestamps,
534            auto_scaling_specification: self.auto_scaling_specification,
535            replica_specifications: self.replica_specifications,
536            cdc_specification: self.cdc_specification,
537        })
538    }
539}