aws_sdk_elasticache/operation/create_serverless_cache/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_serverless_cache::_create_serverless_cache_output::CreateServerlessCacheOutputBuilder;
3
4pub use crate::operation::create_serverless_cache::_create_serverless_cache_input::CreateServerlessCacheInputBuilder;
5
6impl crate::operation::create_serverless_cache::builders::CreateServerlessCacheInputBuilder {
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_serverless_cache::CreateServerlessCacheOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_serverless_cache::CreateServerlessCacheError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_serverless_cache();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateServerlessCache`.
24///
25/// <p>Creates a serverless cache.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateServerlessCacheFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_serverless_cache::builders::CreateServerlessCacheInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_serverless_cache::CreateServerlessCacheOutput,
35        crate::operation::create_serverless_cache::CreateServerlessCacheError,
36    > for CreateServerlessCacheFluentBuilder
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_serverless_cache::CreateServerlessCacheOutput,
44            crate::operation::create_serverless_cache::CreateServerlessCacheError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateServerlessCacheFluentBuilder {
51    /// Creates a new `CreateServerlessCacheFluentBuilder`.
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 CreateServerlessCache as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_serverless_cache::builders::CreateServerlessCacheInputBuilder {
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_serverless_cache::CreateServerlessCacheOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_serverless_cache::CreateServerlessCacheError,
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_serverless_cache::CreateServerlessCache::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_serverless_cache::CreateServerlessCache::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_serverless_cache::CreateServerlessCacheOutput,
97        crate::operation::create_serverless_cache::CreateServerlessCacheError,
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>User-provided identifier for the serverless cache. This parameter is stored as a lowercase string.</p>
112    pub fn serverless_cache_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.serverless_cache_name(input.into());
114        self
115    }
116    /// <p>User-provided identifier for the serverless cache. This parameter is stored as a lowercase string.</p>
117    pub fn set_serverless_cache_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_serverless_cache_name(input);
119        self
120    }
121    /// <p>User-provided identifier for the serverless cache. This parameter is stored as a lowercase string.</p>
122    pub fn get_serverless_cache_name(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_serverless_cache_name()
124    }
125    /// <p>User-provided description for the serverless cache. The default is NULL, i.e. if no description is provided then an empty string will be returned. The maximum length is 255 characters.</p>
126    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.description(input.into());
128        self
129    }
130    /// <p>User-provided description for the serverless cache. The default is NULL, i.e. if no description is provided then an empty string will be returned. The maximum length is 255 characters.</p>
131    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_description(input);
133        self
134    }
135    /// <p>User-provided description for the serverless cache. The default is NULL, i.e. if no description is provided then an empty string will be returned. The maximum length is 255 characters.</p>
136    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_description()
138    }
139    /// <p>The name of the cache engine to be used for creating the serverless cache.</p>
140    pub fn engine(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141        self.inner = self.inner.engine(input.into());
142        self
143    }
144    /// <p>The name of the cache engine to be used for creating the serverless cache.</p>
145    pub fn set_engine(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146        self.inner = self.inner.set_engine(input);
147        self
148    }
149    /// <p>The name of the cache engine to be used for creating the serverless cache.</p>
150    pub fn get_engine(&self) -> &::std::option::Option<::std::string::String> {
151        self.inner.get_engine()
152    }
153    /// <p>The version of the cache engine that will be used to create the serverless cache.</p>
154    pub fn major_engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
155        self.inner = self.inner.major_engine_version(input.into());
156        self
157    }
158    /// <p>The version of the cache engine that will be used to create the serverless cache.</p>
159    pub fn set_major_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
160        self.inner = self.inner.set_major_engine_version(input);
161        self
162    }
163    /// <p>The version of the cache engine that will be used to create the serverless cache.</p>
164    pub fn get_major_engine_version(&self) -> &::std::option::Option<::std::string::String> {
165        self.inner.get_major_engine_version()
166    }
167    /// <p>Sets the cache usage limits for storage and ElastiCache Processing Units for the cache.</p>
168    pub fn cache_usage_limits(mut self, input: crate::types::CacheUsageLimits) -> Self {
169        self.inner = self.inner.cache_usage_limits(input);
170        self
171    }
172    /// <p>Sets the cache usage limits for storage and ElastiCache Processing Units for the cache.</p>
173    pub fn set_cache_usage_limits(mut self, input: ::std::option::Option<crate::types::CacheUsageLimits>) -> Self {
174        self.inner = self.inner.set_cache_usage_limits(input);
175        self
176    }
177    /// <p>Sets the cache usage limits for storage and ElastiCache Processing Units for the cache.</p>
178    pub fn get_cache_usage_limits(&self) -> &::std::option::Option<crate::types::CacheUsageLimits> {
179        self.inner.get_cache_usage_limits()
180    }
181    /// <p>ARN of the customer managed key for encrypting the data at rest. If no KMS key is provided, a default service key is used.</p>
182    pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
183        self.inner = self.inner.kms_key_id(input.into());
184        self
185    }
186    /// <p>ARN of the customer managed key for encrypting the data at rest. If no KMS key is provided, a default service key is used.</p>
187    pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
188        self.inner = self.inner.set_kms_key_id(input);
189        self
190    }
191    /// <p>ARN of the customer managed key for encrypting the data at rest. If no KMS key is provided, a default service key is used.</p>
192    pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
193        self.inner.get_kms_key_id()
194    }
195    ///
196    /// Appends an item to `SecurityGroupIds`.
197    ///
198    /// To override the contents of this collection use [`set_security_group_ids`](Self::set_security_group_ids).
199    ///
200    /// <p>A list of the one or more VPC security groups to be associated with the serverless cache. The security group will authorize traffic access for the VPC end-point (private-link). If no other information is given this will be the VPC’s Default Security Group that is associated with the cluster VPC end-point.</p>
201    pub fn security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
202        self.inner = self.inner.security_group_ids(input.into());
203        self
204    }
205    /// <p>A list of the one or more VPC security groups to be associated with the serverless cache. The security group will authorize traffic access for the VPC end-point (private-link). If no other information is given this will be the VPC’s Default Security Group that is associated with the cluster VPC end-point.</p>
206    pub fn set_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
207        self.inner = self.inner.set_security_group_ids(input);
208        self
209    }
210    /// <p>A list of the one or more VPC security groups to be associated with the serverless cache. The security group will authorize traffic access for the VPC end-point (private-link). If no other information is given this will be the VPC’s Default Security Group that is associated with the cluster VPC end-point.</p>
211    pub fn get_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
212        self.inner.get_security_group_ids()
213    }
214    ///
215    /// Appends an item to `SnapshotArnsToRestore`.
216    ///
217    /// To override the contents of this collection use [`set_snapshot_arns_to_restore`](Self::set_snapshot_arns_to_restore).
218    ///
219    /// <p>The ARN(s) of the snapshot that the new serverless cache will be created from. Available for Valkey, Redis OSS and Serverless Memcached only.</p>
220    pub fn snapshot_arns_to_restore(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
221        self.inner = self.inner.snapshot_arns_to_restore(input.into());
222        self
223    }
224    /// <p>The ARN(s) of the snapshot that the new serverless cache will be created from. Available for Valkey, Redis OSS and Serverless Memcached only.</p>
225    pub fn set_snapshot_arns_to_restore(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
226        self.inner = self.inner.set_snapshot_arns_to_restore(input);
227        self
228    }
229    /// <p>The ARN(s) of the snapshot that the new serverless cache will be created from. Available for Valkey, Redis OSS and Serverless Memcached only.</p>
230    pub fn get_snapshot_arns_to_restore(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
231        self.inner.get_snapshot_arns_to_restore()
232    }
233    ///
234    /// Appends an item to `Tags`.
235    ///
236    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
237    ///
238    /// <p>The list of tags (key, value) pairs to be added to the serverless cache resource. Default is NULL.</p>
239    pub fn tags(mut self, input: crate::types::Tag) -> Self {
240        self.inner = self.inner.tags(input);
241        self
242    }
243    /// <p>The list of tags (key, value) pairs to be added to the serverless cache resource. Default is NULL.</p>
244    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
245        self.inner = self.inner.set_tags(input);
246        self
247    }
248    /// <p>The list of tags (key, value) pairs to be added to the serverless cache resource. Default is NULL.</p>
249    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
250        self.inner.get_tags()
251    }
252    /// <p>The identifier of the UserGroup to be associated with the serverless cache. Available for Valkey and Redis OSS only. Default is NULL.</p>
253    pub fn user_group_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
254        self.inner = self.inner.user_group_id(input.into());
255        self
256    }
257    /// <p>The identifier of the UserGroup to be associated with the serverless cache. Available for Valkey and Redis OSS only. Default is NULL.</p>
258    pub fn set_user_group_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
259        self.inner = self.inner.set_user_group_id(input);
260        self
261    }
262    /// <p>The identifier of the UserGroup to be associated with the serverless cache. Available for Valkey and Redis OSS only. Default is NULL.</p>
263    pub fn get_user_group_id(&self) -> &::std::option::Option<::std::string::String> {
264        self.inner.get_user_group_id()
265    }
266    ///
267    /// Appends an item to `SubnetIds`.
268    ///
269    /// To override the contents of this collection use [`set_subnet_ids`](Self::set_subnet_ids).
270    ///
271    /// <p>A list of the identifiers of the subnets where the VPC endpoint for the serverless cache will be deployed. All the subnetIds must belong to the same VPC.</p>
272    pub fn subnet_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
273        self.inner = self.inner.subnet_ids(input.into());
274        self
275    }
276    /// <p>A list of the identifiers of the subnets where the VPC endpoint for the serverless cache will be deployed. All the subnetIds must belong to the same VPC.</p>
277    pub fn set_subnet_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
278        self.inner = self.inner.set_subnet_ids(input);
279        self
280    }
281    /// <p>A list of the identifiers of the subnets where the VPC endpoint for the serverless cache will be deployed. All the subnetIds must belong to the same VPC.</p>
282    pub fn get_subnet_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
283        self.inner.get_subnet_ids()
284    }
285    /// <p>The number of snapshots that will be retained for the serverless cache that is being created. As new snapshots beyond this limit are added, the oldest snapshots will be deleted on a rolling basis. Available for Valkey, Redis OSS and Serverless Memcached only.</p>
286    pub fn snapshot_retention_limit(mut self, input: i32) -> Self {
287        self.inner = self.inner.snapshot_retention_limit(input);
288        self
289    }
290    /// <p>The number of snapshots that will be retained for the serverless cache that is being created. As new snapshots beyond this limit are added, the oldest snapshots will be deleted on a rolling basis. Available for Valkey, Redis OSS and Serverless Memcached only.</p>
291    pub fn set_snapshot_retention_limit(mut self, input: ::std::option::Option<i32>) -> Self {
292        self.inner = self.inner.set_snapshot_retention_limit(input);
293        self
294    }
295    /// <p>The number of snapshots that will be retained for the serverless cache that is being created. As new snapshots beyond this limit are added, the oldest snapshots will be deleted on a rolling basis. Available for Valkey, Redis OSS and Serverless Memcached only.</p>
296    pub fn get_snapshot_retention_limit(&self) -> &::std::option::Option<i32> {
297        self.inner.get_snapshot_retention_limit()
298    }
299    /// <p>The daily time that snapshots will be created from the new serverless cache. By default this number is populated with 0, i.e. no snapshots will be created on an automatic daily basis. Available for Valkey, Redis OSS and Serverless Memcached only.</p>
300    pub fn daily_snapshot_time(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
301        self.inner = self.inner.daily_snapshot_time(input.into());
302        self
303    }
304    /// <p>The daily time that snapshots will be created from the new serverless cache. By default this number is populated with 0, i.e. no snapshots will be created on an automatic daily basis. Available for Valkey, Redis OSS and Serverless Memcached only.</p>
305    pub fn set_daily_snapshot_time(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
306        self.inner = self.inner.set_daily_snapshot_time(input);
307        self
308    }
309    /// <p>The daily time that snapshots will be created from the new serverless cache. By default this number is populated with 0, i.e. no snapshots will be created on an automatic daily basis. Available for Valkey, Redis OSS and Serverless Memcached only.</p>
310    pub fn get_daily_snapshot_time(&self) -> &::std::option::Option<::std::string::String> {
311        self.inner.get_daily_snapshot_time()
312    }
313}