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}