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}