aws_sdk_finspace/operation/create_kx_cluster/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_kx_cluster::_create_kx_cluster_output::CreateKxClusterOutputBuilder;
3
4pub use crate::operation::create_kx_cluster::_create_kx_cluster_input::CreateKxClusterInputBuilder;
5
6impl crate::operation::create_kx_cluster::builders::CreateKxClusterInputBuilder {
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_kx_cluster::CreateKxClusterOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_kx_cluster::CreateKxClusterError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_kx_cluster();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateKxCluster`.
24///
25/// <p>Creates a new kdb cluster.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateKxClusterFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_kx_cluster::builders::CreateKxClusterInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_kx_cluster::CreateKxClusterOutput,
35        crate::operation::create_kx_cluster::CreateKxClusterError,
36    > for CreateKxClusterFluentBuilder
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_kx_cluster::CreateKxClusterOutput,
44            crate::operation::create_kx_cluster::CreateKxClusterError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateKxClusterFluentBuilder {
51    /// Creates a new `CreateKxClusterFluentBuilder`.
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 CreateKxCluster as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_kx_cluster::builders::CreateKxClusterInputBuilder {
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_kx_cluster::CreateKxClusterOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_kx_cluster::CreateKxClusterError,
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_kx_cluster::CreateKxCluster::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_kx_cluster::CreateKxCluster::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_kx_cluster::CreateKxClusterOutput,
97        crate::operation::create_kx_cluster::CreateKxClusterError,
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>A token that ensures idempotency. This token expires in 10 minutes.</p>
112    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.client_token(input.into());
114        self
115    }
116    /// <p>A token that ensures idempotency. This token expires in 10 minutes.</p>
117    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_client_token(input);
119        self
120    }
121    /// <p>A token that ensures idempotency. This token expires in 10 minutes.</p>
122    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_client_token()
124    }
125    /// <p>A unique identifier for the kdb environment.</p>
126    pub fn environment_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.environment_id(input.into());
128        self
129    }
130    /// <p>A unique identifier for the kdb environment.</p>
131    pub fn set_environment_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_environment_id(input);
133        self
134    }
135    /// <p>A unique identifier for the kdb environment.</p>
136    pub fn get_environment_id(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_environment_id()
138    }
139    /// <p>A unique name for the cluster that you want to create.</p>
140    pub fn cluster_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141        self.inner = self.inner.cluster_name(input.into());
142        self
143    }
144    /// <p>A unique name for the cluster that you want to create.</p>
145    pub fn set_cluster_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146        self.inner = self.inner.set_cluster_name(input);
147        self
148    }
149    /// <p>A unique name for the cluster that you want to create.</p>
150    pub fn get_cluster_name(&self) -> &::std::option::Option<::std::string::String> {
151        self.inner.get_cluster_name()
152    }
153    /// <p>Specifies the type of KDB database that is being created. The following types are available:</p>
154    /// <ul>
155    /// <li>
156    /// <p>HDB – A Historical Database. The data is only accessible with read-only permissions from one of the FinSpace managed kdb databases mounted to the cluster.</p></li>
157    /// <li>
158    /// <p>RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the <code>savedownStorageConfiguration</code> parameter.</p></li>
159    /// <li>
160    /// <p>GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage.</p></li>
161    /// <li>
162    /// <p>GP – A general purpose cluster allows you to quickly iterate on code during development by granting greater access to system commands and enabling a fast reload of custom code. This cluster type can optionally mount databases including cache and savedown storage. For this cluster type, the node count is fixed at 1. It does not support autoscaling and supports only <code>SINGLE</code> AZ mode.</p></li>
163    /// <li>
164    /// <p>Tickerplant – A tickerplant cluster allows you to subscribe to feed handlers based on IAM permissions. It can publish to RDBs, other Tickerplants, and real-time subscribers (RTS). Tickerplants can persist messages to log, which is readable by any RDB environment. It supports only single-node that is only one kdb process.</p></li>
165    /// </ul>
166    pub fn cluster_type(mut self, input: crate::types::KxClusterType) -> Self {
167        self.inner = self.inner.cluster_type(input);
168        self
169    }
170    /// <p>Specifies the type of KDB database that is being created. The following types are available:</p>
171    /// <ul>
172    /// <li>
173    /// <p>HDB – A Historical Database. The data is only accessible with read-only permissions from one of the FinSpace managed kdb databases mounted to the cluster.</p></li>
174    /// <li>
175    /// <p>RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the <code>savedownStorageConfiguration</code> parameter.</p></li>
176    /// <li>
177    /// <p>GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage.</p></li>
178    /// <li>
179    /// <p>GP – A general purpose cluster allows you to quickly iterate on code during development by granting greater access to system commands and enabling a fast reload of custom code. This cluster type can optionally mount databases including cache and savedown storage. For this cluster type, the node count is fixed at 1. It does not support autoscaling and supports only <code>SINGLE</code> AZ mode.</p></li>
180    /// <li>
181    /// <p>Tickerplant – A tickerplant cluster allows you to subscribe to feed handlers based on IAM permissions. It can publish to RDBs, other Tickerplants, and real-time subscribers (RTS). Tickerplants can persist messages to log, which is readable by any RDB environment. It supports only single-node that is only one kdb process.</p></li>
182    /// </ul>
183    pub fn set_cluster_type(mut self, input: ::std::option::Option<crate::types::KxClusterType>) -> Self {
184        self.inner = self.inner.set_cluster_type(input);
185        self
186    }
187    /// <p>Specifies the type of KDB database that is being created. The following types are available:</p>
188    /// <ul>
189    /// <li>
190    /// <p>HDB – A Historical Database. The data is only accessible with read-only permissions from one of the FinSpace managed kdb databases mounted to the cluster.</p></li>
191    /// <li>
192    /// <p>RDB – A Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the <code>savedownStorageConfiguration</code> parameter.</p></li>
193    /// <li>
194    /// <p>GATEWAY – A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage.</p></li>
195    /// <li>
196    /// <p>GP – A general purpose cluster allows you to quickly iterate on code during development by granting greater access to system commands and enabling a fast reload of custom code. This cluster type can optionally mount databases including cache and savedown storage. For this cluster type, the node count is fixed at 1. It does not support autoscaling and supports only <code>SINGLE</code> AZ mode.</p></li>
197    /// <li>
198    /// <p>Tickerplant – A tickerplant cluster allows you to subscribe to feed handlers based on IAM permissions. It can publish to RDBs, other Tickerplants, and real-time subscribers (RTS). Tickerplants can persist messages to log, which is readable by any RDB environment. It supports only single-node that is only one kdb process.</p></li>
199    /// </ul>
200    pub fn get_cluster_type(&self) -> &::std::option::Option<crate::types::KxClusterType> {
201        self.inner.get_cluster_type()
202    }
203    /// <p>A configuration to store Tickerplant logs. It consists of a list of volumes that will be mounted to your cluster. For the cluster type <code>Tickerplant</code>, the location of the TP volume on the cluster will be available by using the global variable <code>.aws.tp_log_path</code>.</p>
204    pub fn tickerplant_log_configuration(mut self, input: crate::types::TickerplantLogConfiguration) -> Self {
205        self.inner = self.inner.tickerplant_log_configuration(input);
206        self
207    }
208    /// <p>A configuration to store Tickerplant logs. It consists of a list of volumes that will be mounted to your cluster. For the cluster type <code>Tickerplant</code>, the location of the TP volume on the cluster will be available by using the global variable <code>.aws.tp_log_path</code>.</p>
209    pub fn set_tickerplant_log_configuration(mut self, input: ::std::option::Option<crate::types::TickerplantLogConfiguration>) -> Self {
210        self.inner = self.inner.set_tickerplant_log_configuration(input);
211        self
212    }
213    /// <p>A configuration to store Tickerplant logs. It consists of a list of volumes that will be mounted to your cluster. For the cluster type <code>Tickerplant</code>, the location of the TP volume on the cluster will be available by using the global variable <code>.aws.tp_log_path</code>.</p>
214    pub fn get_tickerplant_log_configuration(&self) -> &::std::option::Option<crate::types::TickerplantLogConfiguration> {
215        self.inner.get_tickerplant_log_configuration()
216    }
217    ///
218    /// Appends an item to `databases`.
219    ///
220    /// To override the contents of this collection use [`set_databases`](Self::set_databases).
221    ///
222    /// <p>A list of databases that will be available for querying.</p>
223    pub fn databases(mut self, input: crate::types::KxDatabaseConfiguration) -> Self {
224        self.inner = self.inner.databases(input);
225        self
226    }
227    /// <p>A list of databases that will be available for querying.</p>
228    pub fn set_databases(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::KxDatabaseConfiguration>>) -> Self {
229        self.inner = self.inner.set_databases(input);
230        self
231    }
232    /// <p>A list of databases that will be available for querying.</p>
233    pub fn get_databases(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::KxDatabaseConfiguration>> {
234        self.inner.get_databases()
235    }
236    ///
237    /// Appends an item to `cacheStorageConfigurations`.
238    ///
239    /// To override the contents of this collection use [`set_cache_storage_configurations`](Self::set_cache_storage_configurations).
240    ///
241    /// <p>The configurations for a read only cache storage associated with a cluster. This cache will be stored as an FSx Lustre that reads from the S3 store.</p>
242    pub fn cache_storage_configurations(mut self, input: crate::types::KxCacheStorageConfiguration) -> Self {
243        self.inner = self.inner.cache_storage_configurations(input);
244        self
245    }
246    /// <p>The configurations for a read only cache storage associated with a cluster. This cache will be stored as an FSx Lustre that reads from the S3 store.</p>
247    pub fn set_cache_storage_configurations(
248        mut self,
249        input: ::std::option::Option<::std::vec::Vec<crate::types::KxCacheStorageConfiguration>>,
250    ) -> Self {
251        self.inner = self.inner.set_cache_storage_configurations(input);
252        self
253    }
254    /// <p>The configurations for a read only cache storage associated with a cluster. This cache will be stored as an FSx Lustre that reads from the S3 store.</p>
255    pub fn get_cache_storage_configurations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::KxCacheStorageConfiguration>> {
256        self.inner.get_cache_storage_configurations()
257    }
258    /// <p>The configuration based on which FinSpace will scale in or scale out nodes in your cluster.</p>
259    pub fn auto_scaling_configuration(mut self, input: crate::types::AutoScalingConfiguration) -> Self {
260        self.inner = self.inner.auto_scaling_configuration(input);
261        self
262    }
263    /// <p>The configuration based on which FinSpace will scale in or scale out nodes in your cluster.</p>
264    pub fn set_auto_scaling_configuration(mut self, input: ::std::option::Option<crate::types::AutoScalingConfiguration>) -> Self {
265        self.inner = self.inner.set_auto_scaling_configuration(input);
266        self
267    }
268    /// <p>The configuration based on which FinSpace will scale in or scale out nodes in your cluster.</p>
269    pub fn get_auto_scaling_configuration(&self) -> &::std::option::Option<crate::types::AutoScalingConfiguration> {
270        self.inner.get_auto_scaling_configuration()
271    }
272    /// <p>A description of the cluster.</p>
273    pub fn cluster_description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
274        self.inner = self.inner.cluster_description(input.into());
275        self
276    }
277    /// <p>A description of the cluster.</p>
278    pub fn set_cluster_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
279        self.inner = self.inner.set_cluster_description(input);
280        self
281    }
282    /// <p>A description of the cluster.</p>
283    pub fn get_cluster_description(&self) -> &::std::option::Option<::std::string::String> {
284        self.inner.get_cluster_description()
285    }
286    /// <p>A structure for the metadata of a cluster. It includes information like the CPUs needed, memory of instances, and number of instances.</p>
287    pub fn capacity_configuration(mut self, input: crate::types::CapacityConfiguration) -> Self {
288        self.inner = self.inner.capacity_configuration(input);
289        self
290    }
291    /// <p>A structure for the metadata of a cluster. It includes information like the CPUs needed, memory of instances, and number of instances.</p>
292    pub fn set_capacity_configuration(mut self, input: ::std::option::Option<crate::types::CapacityConfiguration>) -> Self {
293        self.inner = self.inner.set_capacity_configuration(input);
294        self
295    }
296    /// <p>A structure for the metadata of a cluster. It includes information like the CPUs needed, memory of instances, and number of instances.</p>
297    pub fn get_capacity_configuration(&self) -> &::std::option::Option<crate::types::CapacityConfiguration> {
298        self.inner.get_capacity_configuration()
299    }
300    /// <p>The version of FinSpace managed kdb to run.</p>
301    pub fn release_label(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
302        self.inner = self.inner.release_label(input.into());
303        self
304    }
305    /// <p>The version of FinSpace managed kdb to run.</p>
306    pub fn set_release_label(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
307        self.inner = self.inner.set_release_label(input);
308        self
309    }
310    /// <p>The version of FinSpace managed kdb to run.</p>
311    pub fn get_release_label(&self) -> &::std::option::Option<::std::string::String> {
312        self.inner.get_release_label()
313    }
314    /// <p>Configuration details about the network where the Privatelink endpoint of the cluster resides.</p>
315    pub fn vpc_configuration(mut self, input: crate::types::VpcConfiguration) -> Self {
316        self.inner = self.inner.vpc_configuration(input);
317        self
318    }
319    /// <p>Configuration details about the network where the Privatelink endpoint of the cluster resides.</p>
320    pub fn set_vpc_configuration(mut self, input: ::std::option::Option<crate::types::VpcConfiguration>) -> Self {
321        self.inner = self.inner.set_vpc_configuration(input);
322        self
323    }
324    /// <p>Configuration details about the network where the Privatelink endpoint of the cluster resides.</p>
325    pub fn get_vpc_configuration(&self) -> &::std::option::Option<crate::types::VpcConfiguration> {
326        self.inner.get_vpc_configuration()
327    }
328    /// <p>Specifies a Q program that will be run at launch of a cluster. It is a relative path within <i>.zip</i> file that contains the custom code, which will be loaded on the cluster. It must include the file name itself. For example, <code>somedir/init.q</code>.</p>
329    pub fn initialization_script(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
330        self.inner = self.inner.initialization_script(input.into());
331        self
332    }
333    /// <p>Specifies a Q program that will be run at launch of a cluster. It is a relative path within <i>.zip</i> file that contains the custom code, which will be loaded on the cluster. It must include the file name itself. For example, <code>somedir/init.q</code>.</p>
334    pub fn set_initialization_script(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
335        self.inner = self.inner.set_initialization_script(input);
336        self
337    }
338    /// <p>Specifies a Q program that will be run at launch of a cluster. It is a relative path within <i>.zip</i> file that contains the custom code, which will be loaded on the cluster. It must include the file name itself. For example, <code>somedir/init.q</code>.</p>
339    pub fn get_initialization_script(&self) -> &::std::option::Option<::std::string::String> {
340        self.inner.get_initialization_script()
341    }
342    ///
343    /// Appends an item to `commandLineArguments`.
344    ///
345    /// To override the contents of this collection use [`set_command_line_arguments`](Self::set_command_line_arguments).
346    ///
347    /// <p>Defines the key-value pairs to make them available inside the cluster.</p>
348    pub fn command_line_arguments(mut self, input: crate::types::KxCommandLineArgument) -> Self {
349        self.inner = self.inner.command_line_arguments(input);
350        self
351    }
352    /// <p>Defines the key-value pairs to make them available inside the cluster.</p>
353    pub fn set_command_line_arguments(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::KxCommandLineArgument>>) -> Self {
354        self.inner = self.inner.set_command_line_arguments(input);
355        self
356    }
357    /// <p>Defines the key-value pairs to make them available inside the cluster.</p>
358    pub fn get_command_line_arguments(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::KxCommandLineArgument>> {
359        self.inner.get_command_line_arguments()
360    }
361    /// <p>The details of the custom code that you want to use inside a cluster when analyzing a data. It consists of the S3 source bucket, location, S3 object version, and the relative path from where the custom code is loaded into the cluster.</p>
362    pub fn code(mut self, input: crate::types::CodeConfiguration) -> Self {
363        self.inner = self.inner.code(input);
364        self
365    }
366    /// <p>The details of the custom code that you want to use inside a cluster when analyzing a data. It consists of the S3 source bucket, location, S3 object version, and the relative path from where the custom code is loaded into the cluster.</p>
367    pub fn set_code(mut self, input: ::std::option::Option<crate::types::CodeConfiguration>) -> Self {
368        self.inner = self.inner.set_code(input);
369        self
370    }
371    /// <p>The details of the custom code that you want to use inside a cluster when analyzing a data. It consists of the S3 source bucket, location, S3 object version, and the relative path from where the custom code is loaded into the cluster.</p>
372    pub fn get_code(&self) -> &::std::option::Option<crate::types::CodeConfiguration> {
373        self.inner.get_code()
374    }
375    /// <p>An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a cluster attempts to access another cluster.</p>
376    pub fn execution_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
377        self.inner = self.inner.execution_role(input.into());
378        self
379    }
380    /// <p>An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a cluster attempts to access another cluster.</p>
381    pub fn set_execution_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
382        self.inner = self.inner.set_execution_role(input);
383        self
384    }
385    /// <p>An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a cluster attempts to access another cluster.</p>
386    pub fn get_execution_role(&self) -> &::std::option::Option<::std::string::String> {
387        self.inner.get_execution_role()
388    }
389    /// <p>The size and type of the temporary storage that is used to hold data during the savedown process. This parameter is required when you choose <code>clusterType</code> as RDB. All the data written to this storage space is lost when the cluster node is restarted.</p>
390    pub fn savedown_storage_configuration(mut self, input: crate::types::KxSavedownStorageConfiguration) -> Self {
391        self.inner = self.inner.savedown_storage_configuration(input);
392        self
393    }
394    /// <p>The size and type of the temporary storage that is used to hold data during the savedown process. This parameter is required when you choose <code>clusterType</code> as RDB. All the data written to this storage space is lost when the cluster node is restarted.</p>
395    pub fn set_savedown_storage_configuration(mut self, input: ::std::option::Option<crate::types::KxSavedownStorageConfiguration>) -> Self {
396        self.inner = self.inner.set_savedown_storage_configuration(input);
397        self
398    }
399    /// <p>The size and type of the temporary storage that is used to hold data during the savedown process. This parameter is required when you choose <code>clusterType</code> as RDB. All the data written to this storage space is lost when the cluster node is restarted.</p>
400    pub fn get_savedown_storage_configuration(&self) -> &::std::option::Option<crate::types::KxSavedownStorageConfiguration> {
401        self.inner.get_savedown_storage_configuration()
402    }
403    /// <p>The number of availability zones you want to assign per cluster. This can be one of the following</p>
404    /// <ul>
405    /// <li>
406    /// <p><code>SINGLE</code> – Assigns one availability zone per cluster.</p></li>
407    /// <li>
408    /// <p><code>MULTI</code> – Assigns all the availability zones per cluster.</p></li>
409    /// </ul>
410    pub fn az_mode(mut self, input: crate::types::KxAzMode) -> Self {
411        self.inner = self.inner.az_mode(input);
412        self
413    }
414    /// <p>The number of availability zones you want to assign per cluster. This can be one of the following</p>
415    /// <ul>
416    /// <li>
417    /// <p><code>SINGLE</code> – Assigns one availability zone per cluster.</p></li>
418    /// <li>
419    /// <p><code>MULTI</code> – Assigns all the availability zones per cluster.</p></li>
420    /// </ul>
421    pub fn set_az_mode(mut self, input: ::std::option::Option<crate::types::KxAzMode>) -> Self {
422        self.inner = self.inner.set_az_mode(input);
423        self
424    }
425    /// <p>The number of availability zones you want to assign per cluster. This can be one of the following</p>
426    /// <ul>
427    /// <li>
428    /// <p><code>SINGLE</code> – Assigns one availability zone per cluster.</p></li>
429    /// <li>
430    /// <p><code>MULTI</code> – Assigns all the availability zones per cluster.</p></li>
431    /// </ul>
432    pub fn get_az_mode(&self) -> &::std::option::Option<crate::types::KxAzMode> {
433        self.inner.get_az_mode()
434    }
435    /// <p>The availability zone identifiers for the requested regions.</p>
436    pub fn availability_zone_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
437        self.inner = self.inner.availability_zone_id(input.into());
438        self
439    }
440    /// <p>The availability zone identifiers for the requested regions.</p>
441    pub fn set_availability_zone_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
442        self.inner = self.inner.set_availability_zone_id(input);
443        self
444    }
445    /// <p>The availability zone identifiers for the requested regions.</p>
446    pub fn get_availability_zone_id(&self) -> &::std::option::Option<::std::string::String> {
447        self.inner.get_availability_zone_id()
448    }
449    ///
450    /// Adds a key-value pair to `tags`.
451    ///
452    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
453    ///
454    /// <p>A list of key-value pairs to label the cluster. You can add up to 50 tags to a cluster.</p>
455    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
456        self.inner = self.inner.tags(k.into(), v.into());
457        self
458    }
459    /// <p>A list of key-value pairs to label the cluster. You can add up to 50 tags to a cluster.</p>
460    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
461        self.inner = self.inner.set_tags(input);
462        self
463    }
464    /// <p>A list of key-value pairs to label the cluster. You can add up to 50 tags to a cluster.</p>
465    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
466        self.inner.get_tags()
467    }
468    /// <p>The structure that stores the configuration details of a scaling group.</p>
469    pub fn scaling_group_configuration(mut self, input: crate::types::KxScalingGroupConfiguration) -> Self {
470        self.inner = self.inner.scaling_group_configuration(input);
471        self
472    }
473    /// <p>The structure that stores the configuration details of a scaling group.</p>
474    pub fn set_scaling_group_configuration(mut self, input: ::std::option::Option<crate::types::KxScalingGroupConfiguration>) -> Self {
475        self.inner = self.inner.set_scaling_group_configuration(input);
476        self
477    }
478    /// <p>The structure that stores the configuration details of a scaling group.</p>
479    pub fn get_scaling_group_configuration(&self) -> &::std::option::Option<crate::types::KxScalingGroupConfiguration> {
480        self.inner.get_scaling_group_configuration()
481    }
482}