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}