aws_sdk_memorydb/operation/create_cluster/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_cluster::_create_cluster_output::CreateClusterOutputBuilder;
3
4pub use crate::operation::create_cluster::_create_cluster_input::CreateClusterInputBuilder;
5
6impl crate::operation::create_cluster::builders::CreateClusterInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_cluster::CreateClusterOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_cluster::CreateClusterError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_cluster();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateCluster`.
24///
25/// <p>Creates a cluster. All nodes in the cluster run the same protocol-compliant engine software.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateClusterFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_cluster::builders::CreateClusterInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_cluster::CreateClusterOutput,
35        crate::operation::create_cluster::CreateClusterError,
36    > for CreateClusterFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::create_cluster::CreateClusterOutput,
44            crate::operation::create_cluster::CreateClusterError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateClusterFluentBuilder {
51    /// Creates a new `CreateClusterFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the CreateCluster as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_cluster::builders::CreateClusterInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::create_cluster::CreateClusterOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_cluster::CreateClusterError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::create_cluster::CreateCluster::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_cluster::CreateCluster::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::create_cluster::CreateClusterOutput,
97        crate::operation::create_cluster::CreateClusterError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>The name of the cluster. This value must be unique as it also serves as the cluster identifier.</p>
112    pub fn cluster_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.cluster_name(input.into());
114        self
115    }
116    /// <p>The name of the cluster. This value must be unique as it also serves as the cluster identifier.</p>
117    pub fn set_cluster_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_cluster_name(input);
119        self
120    }
121    /// <p>The name of the cluster. This value must be unique as it also serves as the cluster identifier.</p>
122    pub fn get_cluster_name(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_cluster_name()
124    }
125    /// <p>The compute and memory capacity of the nodes in the cluster.</p>
126    pub fn node_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.node_type(input.into());
128        self
129    }
130    /// <p>The compute and memory capacity of the nodes in the cluster.</p>
131    pub fn set_node_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_node_type(input);
133        self
134    }
135    /// <p>The compute and memory capacity of the nodes in the cluster.</p>
136    pub fn get_node_type(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_node_type()
138    }
139    /// <p>The name of the multi-Region cluster to be created.</p>
140    pub fn multi_region_cluster_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141        self.inner = self.inner.multi_region_cluster_name(input.into());
142        self
143    }
144    /// <p>The name of the multi-Region cluster to be created.</p>
145    pub fn set_multi_region_cluster_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146        self.inner = self.inner.set_multi_region_cluster_name(input);
147        self
148    }
149    /// <p>The name of the multi-Region cluster to be created.</p>
150    pub fn get_multi_region_cluster_name(&self) -> &::std::option::Option<::std::string::String> {
151        self.inner.get_multi_region_cluster_name()
152    }
153    /// <p>The name of the parameter group associated with the cluster.</p>
154    pub fn parameter_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
155        self.inner = self.inner.parameter_group_name(input.into());
156        self
157    }
158    /// <p>The name of the parameter group associated with the cluster.</p>
159    pub fn set_parameter_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
160        self.inner = self.inner.set_parameter_group_name(input);
161        self
162    }
163    /// <p>The name of the parameter group associated with the cluster.</p>
164    pub fn get_parameter_group_name(&self) -> &::std::option::Option<::std::string::String> {
165        self.inner.get_parameter_group_name()
166    }
167    /// <p>An optional description of the cluster.</p>
168    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
169        self.inner = self.inner.description(input.into());
170        self
171    }
172    /// <p>An optional description of the cluster.</p>
173    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
174        self.inner = self.inner.set_description(input);
175        self
176    }
177    /// <p>An optional description of the cluster.</p>
178    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
179        self.inner.get_description()
180    }
181    /// <p>The number of shards the cluster will contain. The default value is 1.</p>
182    pub fn num_shards(mut self, input: i32) -> Self {
183        self.inner = self.inner.num_shards(input);
184        self
185    }
186    /// <p>The number of shards the cluster will contain. The default value is 1.</p>
187    pub fn set_num_shards(mut self, input: ::std::option::Option<i32>) -> Self {
188        self.inner = self.inner.set_num_shards(input);
189        self
190    }
191    /// <p>The number of shards the cluster will contain. The default value is 1.</p>
192    pub fn get_num_shards(&self) -> &::std::option::Option<i32> {
193        self.inner.get_num_shards()
194    }
195    /// <p>The number of replicas to apply to each shard. The default value is 1. The maximum is 5.</p>
196    pub fn num_replicas_per_shard(mut self, input: i32) -> Self {
197        self.inner = self.inner.num_replicas_per_shard(input);
198        self
199    }
200    /// <p>The number of replicas to apply to each shard. The default value is 1. The maximum is 5.</p>
201    pub fn set_num_replicas_per_shard(mut self, input: ::std::option::Option<i32>) -> Self {
202        self.inner = self.inner.set_num_replicas_per_shard(input);
203        self
204    }
205    /// <p>The number of replicas to apply to each shard. The default value is 1. The maximum is 5.</p>
206    pub fn get_num_replicas_per_shard(&self) -> &::std::option::Option<i32> {
207        self.inner.get_num_replicas_per_shard()
208    }
209    /// <p>The name of the subnet group to be used for the cluster.</p>
210    pub fn subnet_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
211        self.inner = self.inner.subnet_group_name(input.into());
212        self
213    }
214    /// <p>The name of the subnet group to be used for the cluster.</p>
215    pub fn set_subnet_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
216        self.inner = self.inner.set_subnet_group_name(input);
217        self
218    }
219    /// <p>The name of the subnet group to be used for the cluster.</p>
220    pub fn get_subnet_group_name(&self) -> &::std::option::Option<::std::string::String> {
221        self.inner.get_subnet_group_name()
222    }
223    ///
224    /// Appends an item to `SecurityGroupIds`.
225    ///
226    /// To override the contents of this collection use [`set_security_group_ids`](Self::set_security_group_ids).
227    ///
228    /// <p>A list of security group names to associate with this cluster.</p>
229    pub fn security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
230        self.inner = self.inner.security_group_ids(input.into());
231        self
232    }
233    /// <p>A list of security group names to associate with this cluster.</p>
234    pub fn set_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
235        self.inner = self.inner.set_security_group_ids(input);
236        self
237    }
238    /// <p>A list of security group names to associate with this cluster.</p>
239    pub fn get_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
240        self.inner.get_security_group_ids()
241    }
242    /// <p>Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.</p>
243    /// <p>Valid values for <code>ddd</code> are:</p>
244    /// <ul>
245    /// <li>
246    /// <p><code>sun</code></p></li>
247    /// <li>
248    /// <p><code>mon</code></p></li>
249    /// <li>
250    /// <p><code>tue</code></p></li>
251    /// <li>
252    /// <p><code>wed</code></p></li>
253    /// <li>
254    /// <p><code>thu</code></p></li>
255    /// <li>
256    /// <p><code>fri</code></p></li>
257    /// <li>
258    /// <p><code>sat</code></p></li>
259    /// </ul>
260    /// <p>Example: <code>sun:23:00-mon:01:30</code></p>
261    pub fn maintenance_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
262        self.inner = self.inner.maintenance_window(input.into());
263        self
264    }
265    /// <p>Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.</p>
266    /// <p>Valid values for <code>ddd</code> are:</p>
267    /// <ul>
268    /// <li>
269    /// <p><code>sun</code></p></li>
270    /// <li>
271    /// <p><code>mon</code></p></li>
272    /// <li>
273    /// <p><code>tue</code></p></li>
274    /// <li>
275    /// <p><code>wed</code></p></li>
276    /// <li>
277    /// <p><code>thu</code></p></li>
278    /// <li>
279    /// <p><code>fri</code></p></li>
280    /// <li>
281    /// <p><code>sat</code></p></li>
282    /// </ul>
283    /// <p>Example: <code>sun:23:00-mon:01:30</code></p>
284    pub fn set_maintenance_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
285        self.inner = self.inner.set_maintenance_window(input);
286        self
287    }
288    /// <p>Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.</p>
289    /// <p>Valid values for <code>ddd</code> are:</p>
290    /// <ul>
291    /// <li>
292    /// <p><code>sun</code></p></li>
293    /// <li>
294    /// <p><code>mon</code></p></li>
295    /// <li>
296    /// <p><code>tue</code></p></li>
297    /// <li>
298    /// <p><code>wed</code></p></li>
299    /// <li>
300    /// <p><code>thu</code></p></li>
301    /// <li>
302    /// <p><code>fri</code></p></li>
303    /// <li>
304    /// <p><code>sat</code></p></li>
305    /// </ul>
306    /// <p>Example: <code>sun:23:00-mon:01:30</code></p>
307    pub fn get_maintenance_window(&self) -> &::std::option::Option<::std::string::String> {
308        self.inner.get_maintenance_window()
309    }
310    /// <p>The port number on which each of the nodes accepts connections.</p>
311    pub fn port(mut self, input: i32) -> Self {
312        self.inner = self.inner.port(input);
313        self
314    }
315    /// <p>The port number on which each of the nodes accepts connections.</p>
316    pub fn set_port(mut self, input: ::std::option::Option<i32>) -> Self {
317        self.inner = self.inner.set_port(input);
318        self
319    }
320    /// <p>The port number on which each of the nodes accepts connections.</p>
321    pub fn get_port(&self) -> &::std::option::Option<i32> {
322        self.inner.get_port()
323    }
324    /// <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.</p>
325    pub fn sns_topic_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
326        self.inner = self.inner.sns_topic_arn(input.into());
327        self
328    }
329    /// <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.</p>
330    pub fn set_sns_topic_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
331        self.inner = self.inner.set_sns_topic_arn(input);
332        self
333    }
334    /// <p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.</p>
335    pub fn get_sns_topic_arn(&self) -> &::std::option::Option<::std::string::String> {
336        self.inner.get_sns_topic_arn()
337    }
338    /// <p>A flag to enable in-transit encryption on the cluster.</p>
339    pub fn tls_enabled(mut self, input: bool) -> Self {
340        self.inner = self.inner.tls_enabled(input);
341        self
342    }
343    /// <p>A flag to enable in-transit encryption on the cluster.</p>
344    pub fn set_tls_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
345        self.inner = self.inner.set_tls_enabled(input);
346        self
347    }
348    /// <p>A flag to enable in-transit encryption on the cluster.</p>
349    pub fn get_tls_enabled(&self) -> &::std::option::Option<bool> {
350        self.inner.get_tls_enabled()
351    }
352    /// <p>The ID of the KMS key used to encrypt the cluster.</p>
353    pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
354        self.inner = self.inner.kms_key_id(input.into());
355        self
356    }
357    /// <p>The ID of the KMS key used to encrypt the cluster.</p>
358    pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
359        self.inner = self.inner.set_kms_key_id(input);
360        self
361    }
362    /// <p>The ID of the KMS key used to encrypt the cluster.</p>
363    pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
364        self.inner.get_kms_key_id()
365    }
366    ///
367    /// Appends an item to `SnapshotArns`.
368    ///
369    /// To override the contents of this collection use [`set_snapshot_arns`](Self::set_snapshot_arns).
370    ///
371    /// <p>A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new cluster. The Amazon S3 object name in the ARN cannot contain any commas.</p>
372    pub fn snapshot_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
373        self.inner = self.inner.snapshot_arns(input.into());
374        self
375    }
376    /// <p>A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new cluster. The Amazon S3 object name in the ARN cannot contain any commas.</p>
377    pub fn set_snapshot_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
378        self.inner = self.inner.set_snapshot_arns(input);
379        self
380    }
381    /// <p>A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new cluster. The Amazon S3 object name in the ARN cannot contain any commas.</p>
382    pub fn get_snapshot_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
383        self.inner.get_snapshot_arns()
384    }
385    /// <p>The name of a snapshot from which to restore data into the new cluster. The snapshot status changes to restoring while the new cluster is being created.</p>
386    pub fn snapshot_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
387        self.inner = self.inner.snapshot_name(input.into());
388        self
389    }
390    /// <p>The name of a snapshot from which to restore data into the new cluster. The snapshot status changes to restoring while the new cluster is being created.</p>
391    pub fn set_snapshot_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
392        self.inner = self.inner.set_snapshot_name(input);
393        self
394    }
395    /// <p>The name of a snapshot from which to restore data into the new cluster. The snapshot status changes to restoring while the new cluster is being created.</p>
396    pub fn get_snapshot_name(&self) -> &::std::option::Option<::std::string::String> {
397        self.inner.get_snapshot_name()
398    }
399    /// <p>The number of days for which MemoryDB retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.</p>
400    pub fn snapshot_retention_limit(mut self, input: i32) -> Self {
401        self.inner = self.inner.snapshot_retention_limit(input);
402        self
403    }
404    /// <p>The number of days for which MemoryDB retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.</p>
405    pub fn set_snapshot_retention_limit(mut self, input: ::std::option::Option<i32>) -> Self {
406        self.inner = self.inner.set_snapshot_retention_limit(input);
407        self
408    }
409    /// <p>The number of days for which MemoryDB retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.</p>
410    pub fn get_snapshot_retention_limit(&self) -> &::std::option::Option<i32> {
411        self.inner.get_snapshot_retention_limit()
412    }
413    ///
414    /// Appends an item to `Tags`.
415    ///
416    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
417    ///
418    /// <p>A list of tags to be added to this resource. Tags are comma-separated key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, Value=mySecondKeyValue.</p>
419    pub fn tags(mut self, input: crate::types::Tag) -> Self {
420        self.inner = self.inner.tags(input);
421        self
422    }
423    /// <p>A list of tags to be added to this resource. Tags are comma-separated key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, Value=mySecondKeyValue.</p>
424    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
425        self.inner = self.inner.set_tags(input);
426        self
427    }
428    /// <p>A list of tags to be added to this resource. Tags are comma-separated key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, Value=mySecondKeyValue.</p>
429    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
430        self.inner.get_tags()
431    }
432    /// <p>The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard.</p>
433    /// <p>Example: 05:00-09:00</p>
434    /// <p>If you do not specify this parameter, MemoryDB automatically chooses an appropriate time range.</p>
435    pub fn snapshot_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
436        self.inner = self.inner.snapshot_window(input.into());
437        self
438    }
439    /// <p>The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard.</p>
440    /// <p>Example: 05:00-09:00</p>
441    /// <p>If you do not specify this parameter, MemoryDB automatically chooses an appropriate time range.</p>
442    pub fn set_snapshot_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
443        self.inner = self.inner.set_snapshot_window(input);
444        self
445    }
446    /// <p>The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard.</p>
447    /// <p>Example: 05:00-09:00</p>
448    /// <p>If you do not specify this parameter, MemoryDB automatically chooses an appropriate time range.</p>
449    pub fn get_snapshot_window(&self) -> &::std::option::Option<::std::string::String> {
450        self.inner.get_snapshot_window()
451    }
452    /// <p>The name of the Access Control List to associate with the cluster.</p>
453    pub fn acl_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
454        self.inner = self.inner.acl_name(input.into());
455        self
456    }
457    /// <p>The name of the Access Control List to associate with the cluster.</p>
458    pub fn set_acl_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
459        self.inner = self.inner.set_acl_name(input);
460        self
461    }
462    /// <p>The name of the Access Control List to associate with the cluster.</p>
463    pub fn get_acl_name(&self) -> &::std::option::Option<::std::string::String> {
464        self.inner.get_acl_name()
465    }
466    /// <p>The name of the engine to be used for the cluster.</p>
467    pub fn engine(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
468        self.inner = self.inner.engine(input.into());
469        self
470    }
471    /// <p>The name of the engine to be used for the cluster.</p>
472    pub fn set_engine(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
473        self.inner = self.inner.set_engine(input);
474        self
475    }
476    /// <p>The name of the engine to be used for the cluster.</p>
477    pub fn get_engine(&self) -> &::std::option::Option<::std::string::String> {
478        self.inner.get_engine()
479    }
480    /// <p>The version number of the Redis OSS engine to be used for the cluster.</p>
481    pub fn engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
482        self.inner = self.inner.engine_version(input.into());
483        self
484    }
485    /// <p>The version number of the Redis OSS engine to be used for the cluster.</p>
486    pub fn set_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
487        self.inner = self.inner.set_engine_version(input);
488        self
489    }
490    /// <p>The version number of the Redis OSS engine to be used for the cluster.</p>
491    pub fn get_engine_version(&self) -> &::std::option::Option<::std::string::String> {
492        self.inner.get_engine_version()
493    }
494    /// <p>When set to true, the cluster will automatically receive minor engine version upgrades after launch.</p>
495    pub fn auto_minor_version_upgrade(mut self, input: bool) -> Self {
496        self.inner = self.inner.auto_minor_version_upgrade(input);
497        self
498    }
499    /// <p>When set to true, the cluster will automatically receive minor engine version upgrades after launch.</p>
500    pub fn set_auto_minor_version_upgrade(mut self, input: ::std::option::Option<bool>) -> Self {
501        self.inner = self.inner.set_auto_minor_version_upgrade(input);
502        self
503    }
504    /// <p>When set to true, the cluster will automatically receive minor engine version upgrades after launch.</p>
505    pub fn get_auto_minor_version_upgrade(&self) -> &::std::option::Option<bool> {
506        self.inner.get_auto_minor_version_upgrade()
507    }
508    /// <p>Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see <a href="https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html">Data tiering</a>.</p>
509    pub fn data_tiering(mut self, input: bool) -> Self {
510        self.inner = self.inner.data_tiering(input);
511        self
512    }
513    /// <p>Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see <a href="https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html">Data tiering</a>.</p>
514    pub fn set_data_tiering(mut self, input: ::std::option::Option<bool>) -> Self {
515        self.inner = self.inner.set_data_tiering(input);
516        self
517    }
518    /// <p>Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see <a href="https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html">Data tiering</a>.</p>
519    pub fn get_data_tiering(&self) -> &::std::option::Option<bool> {
520        self.inner.get_data_tiering()
521    }
522    /// <p>Specifies the IP address type for the cluster. Valid values are 'ipv4', 'ipv6', or 'dual_stack'. When set to 'ipv4', the cluster will only be accessible via IPv4 addresses. When set to 'ipv6', the cluster will only be accessible via IPv6 addresses. When set to 'dual_stack', the cluster will be accessible via both IPv4 and IPv6 addresses. If not specified, the default is 'ipv4'.</p>
523    pub fn network_type(mut self, input: crate::types::NetworkType) -> Self {
524        self.inner = self.inner.network_type(input);
525        self
526    }
527    /// <p>Specifies the IP address type for the cluster. Valid values are 'ipv4', 'ipv6', or 'dual_stack'. When set to 'ipv4', the cluster will only be accessible via IPv4 addresses. When set to 'ipv6', the cluster will only be accessible via IPv6 addresses. When set to 'dual_stack', the cluster will be accessible via both IPv4 and IPv6 addresses. If not specified, the default is 'ipv4'.</p>
528    pub fn set_network_type(mut self, input: ::std::option::Option<crate::types::NetworkType>) -> Self {
529        self.inner = self.inner.set_network_type(input);
530        self
531    }
532    /// <p>Specifies the IP address type for the cluster. Valid values are 'ipv4', 'ipv6', or 'dual_stack'. When set to 'ipv4', the cluster will only be accessible via IPv4 addresses. When set to 'ipv6', the cluster will only be accessible via IPv6 addresses. When set to 'dual_stack', the cluster will be accessible via both IPv4 and IPv6 addresses. If not specified, the default is 'ipv4'.</p>
533    pub fn get_network_type(&self) -> &::std::option::Option<crate::types::NetworkType> {
534        self.inner.get_network_type()
535    }
536    /// <p>The mechanism for discovering IP addresses for the cluster discovery protocol. Valid values are 'ipv4' or 'ipv6'. When set to 'ipv4', cluster discovery functions such as cluster slots, cluster shards, and cluster nodes return IPv4 addresses for cluster nodes. When set to 'ipv6', the cluster discovery functions return IPv6 addresses for cluster nodes. The value must be compatible with the NetworkType parameter. If not specified, the default is 'ipv4'.</p>
537    pub fn ip_discovery(mut self, input: crate::types::IpDiscovery) -> Self {
538        self.inner = self.inner.ip_discovery(input);
539        self
540    }
541    /// <p>The mechanism for discovering IP addresses for the cluster discovery protocol. Valid values are 'ipv4' or 'ipv6'. When set to 'ipv4', cluster discovery functions such as cluster slots, cluster shards, and cluster nodes return IPv4 addresses for cluster nodes. When set to 'ipv6', the cluster discovery functions return IPv6 addresses for cluster nodes. The value must be compatible with the NetworkType parameter. If not specified, the default is 'ipv4'.</p>
542    pub fn set_ip_discovery(mut self, input: ::std::option::Option<crate::types::IpDiscovery>) -> Self {
543        self.inner = self.inner.set_ip_discovery(input);
544        self
545    }
546    /// <p>The mechanism for discovering IP addresses for the cluster discovery protocol. Valid values are 'ipv4' or 'ipv6'. When set to 'ipv4', cluster discovery functions such as cluster slots, cluster shards, and cluster nodes return IPv4 addresses for cluster nodes. When set to 'ipv6', the cluster discovery functions return IPv6 addresses for cluster nodes. The value must be compatible with the NetworkType parameter. If not specified, the default is 'ipv4'.</p>
547    pub fn get_ip_discovery(&self) -> &::std::option::Option<crate::types::IpDiscovery> {
548        self.inner.get_ip_discovery()
549    }
550}