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