aws_sdk_elasticache/operation/modify_serverless_cache/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::modify_serverless_cache::_modify_serverless_cache_output::ModifyServerlessCacheOutputBuilder;
3
4pub use crate::operation::modify_serverless_cache::_modify_serverless_cache_input::ModifyServerlessCacheInputBuilder;
5
6impl crate::operation::modify_serverless_cache::builders::ModifyServerlessCacheInputBuilder {
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::modify_serverless_cache::ModifyServerlessCacheOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::modify_serverless_cache::ModifyServerlessCacheError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.modify_serverless_cache();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `ModifyServerlessCache`.
24///
25/// <p>This API modifies the attributes of a serverless cache.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct ModifyServerlessCacheFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::modify_serverless_cache::builders::ModifyServerlessCacheInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::modify_serverless_cache::ModifyServerlessCacheOutput,
35        crate::operation::modify_serverless_cache::ModifyServerlessCacheError,
36    > for ModifyServerlessCacheFluentBuilder
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::modify_serverless_cache::ModifyServerlessCacheOutput,
44            crate::operation::modify_serverless_cache::ModifyServerlessCacheError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl ModifyServerlessCacheFluentBuilder {
51    /// Creates a new `ModifyServerlessCacheFluentBuilder`.
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 ModifyServerlessCache as a reference.
60    pub fn as_input(&self) -> &crate::operation::modify_serverless_cache::builders::ModifyServerlessCacheInputBuilder {
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::modify_serverless_cache::ModifyServerlessCacheOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::modify_serverless_cache::ModifyServerlessCacheError,
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::modify_serverless_cache::ModifyServerlessCache::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::modify_serverless_cache::ModifyServerlessCache::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::modify_serverless_cache::ModifyServerlessCacheOutput,
97        crate::operation::modify_serverless_cache::ModifyServerlessCacheError,
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 to be modified.</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 to be modified.</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 to be modified.</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. Default = NULL, i.e. the existing description is not removed/modified. The description has a maximum length of 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. Default = NULL, i.e. the existing description is not removed/modified. The description has a maximum length of 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. Default = NULL, i.e. the existing description is not removed/modified. The description has a maximum length of 255 characters.</p>
136    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_description()
138    }
139    /// <p>Modify the cache usage limit for the serverless cache.</p>
140    pub fn cache_usage_limits(mut self, input: crate::types::CacheUsageLimits) -> Self {
141        self.inner = self.inner.cache_usage_limits(input);
142        self
143    }
144    /// <p>Modify the cache usage limit for the serverless cache.</p>
145    pub fn set_cache_usage_limits(mut self, input: ::std::option::Option<crate::types::CacheUsageLimits>) -> Self {
146        self.inner = self.inner.set_cache_usage_limits(input);
147        self
148    }
149    /// <p>Modify the cache usage limit for the serverless cache.</p>
150    pub fn get_cache_usage_limits(&self) -> &::std::option::Option<crate::types::CacheUsageLimits> {
151        self.inner.get_cache_usage_limits()
152    }
153    /// <p>The identifier of the UserGroup to be removed from association with the Valkey and Redis OSS serverless cache. Available for Valkey and Redis OSS only. Default is NULL.</p>
154    pub fn remove_user_group(mut self, input: bool) -> Self {
155        self.inner = self.inner.remove_user_group(input);
156        self
157    }
158    /// <p>The identifier of the UserGroup to be removed from association with the Valkey and Redis OSS serverless cache. Available for Valkey and Redis OSS only. Default is NULL.</p>
159    pub fn set_remove_user_group(mut self, input: ::std::option::Option<bool>) -> Self {
160        self.inner = self.inner.set_remove_user_group(input);
161        self
162    }
163    /// <p>The identifier of the UserGroup to be removed from association with the Valkey and Redis OSS serverless cache. Available for Valkey and Redis OSS only. Default is NULL.</p>
164    pub fn get_remove_user_group(&self) -> &::std::option::Option<bool> {
165        self.inner.get_remove_user_group()
166    }
167    /// <p>The identifier of the UserGroup to be associated with the serverless cache. Available for Valkey and Redis OSS only. Default is NULL - the existing UserGroup is not removed.</p>
168    pub fn user_group_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
169        self.inner = self.inner.user_group_id(input.into());
170        self
171    }
172    /// <p>The identifier of the UserGroup to be associated with the serverless cache. Available for Valkey and Redis OSS only. Default is NULL - the existing UserGroup is not removed.</p>
173    pub fn set_user_group_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
174        self.inner = self.inner.set_user_group_id(input);
175        self
176    }
177    /// <p>The identifier of the UserGroup to be associated with the serverless cache. Available for Valkey and Redis OSS only. Default is NULL - the existing UserGroup is not removed.</p>
178    pub fn get_user_group_id(&self) -> &::std::option::Option<::std::string::String> {
179        self.inner.get_user_group_id()
180    }
181    ///
182    /// Appends an item to `SecurityGroupIds`.
183    ///
184    /// To override the contents of this collection use [`set_security_group_ids`](Self::set_security_group_ids).
185    ///
186    /// <p>The new list of VPC security groups to be associated with the serverless cache. Populating this list means the current VPC security groups will be removed. This security group is used to authorize traffic access for the VPC end-point (private-link). Default = NULL - the existing list of VPC security groups is not removed.</p>
187    pub fn security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
188        self.inner = self.inner.security_group_ids(input.into());
189        self
190    }
191    /// <p>The new list of VPC security groups to be associated with the serverless cache. Populating this list means the current VPC security groups will be removed. This security group is used to authorize traffic access for the VPC end-point (private-link). Default = NULL - the existing list of VPC security groups is not removed.</p>
192    pub fn set_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
193        self.inner = self.inner.set_security_group_ids(input);
194        self
195    }
196    /// <p>The new list of VPC security groups to be associated with the serverless cache. Populating this list means the current VPC security groups will be removed. This security group is used to authorize traffic access for the VPC end-point (private-link). Default = NULL - the existing list of VPC security groups is not removed.</p>
197    pub fn get_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
198        self.inner.get_security_group_ids()
199    }
200    /// <p>The number of days for which Elasticache retains automatic snapshots before deleting them. Available for Valkey, Redis OSS and Serverless Memcached only. Default = NULL, i.e. the existing snapshot-retention-limit will not be removed or modified. The maximum value allowed is 35 days.</p>
201    pub fn snapshot_retention_limit(mut self, input: i32) -> Self {
202        self.inner = self.inner.snapshot_retention_limit(input);
203        self
204    }
205    /// <p>The number of days for which Elasticache retains automatic snapshots before deleting them. Available for Valkey, Redis OSS and Serverless Memcached only. Default = NULL, i.e. the existing snapshot-retention-limit will not be removed or modified. The maximum value allowed is 35 days.</p>
206    pub fn set_snapshot_retention_limit(mut self, input: ::std::option::Option<i32>) -> Self {
207        self.inner = self.inner.set_snapshot_retention_limit(input);
208        self
209    }
210    /// <p>The number of days for which Elasticache retains automatic snapshots before deleting them. Available for Valkey, Redis OSS and Serverless Memcached only. Default = NULL, i.e. the existing snapshot-retention-limit will not be removed or modified. The maximum value allowed is 35 days.</p>
211    pub fn get_snapshot_retention_limit(&self) -> &::std::option::Option<i32> {
212        self.inner.get_snapshot_retention_limit()
213    }
214    /// <p>The daily time during which Elasticache begins taking a daily snapshot of the serverless cache. Available for Valkey, Redis OSS and Serverless Memcached only. The default is NULL, i.e. the existing snapshot time configured for the cluster is not removed.</p>
215    pub fn daily_snapshot_time(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
216        self.inner = self.inner.daily_snapshot_time(input.into());
217        self
218    }
219    /// <p>The daily time during which Elasticache begins taking a daily snapshot of the serverless cache. Available for Valkey, Redis OSS and Serverless Memcached only. The default is NULL, i.e. the existing snapshot time configured for the cluster is not removed.</p>
220    pub fn set_daily_snapshot_time(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
221        self.inner = self.inner.set_daily_snapshot_time(input);
222        self
223    }
224    /// <p>The daily time during which Elasticache begins taking a daily snapshot of the serverless cache. Available for Valkey, Redis OSS and Serverless Memcached only. The default is NULL, i.e. the existing snapshot time configured for the cluster is not removed.</p>
225    pub fn get_daily_snapshot_time(&self) -> &::std::option::Option<::std::string::String> {
226        self.inner.get_daily_snapshot_time()
227    }
228    /// <p>Modifies the engine listed in a serverless cache request. The options are redis, memcached or valkey.</p>
229    pub fn engine(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
230        self.inner = self.inner.engine(input.into());
231        self
232    }
233    /// <p>Modifies the engine listed in a serverless cache request. The options are redis, memcached or valkey.</p>
234    pub fn set_engine(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
235        self.inner = self.inner.set_engine(input);
236        self
237    }
238    /// <p>Modifies the engine listed in a serverless cache request. The options are redis, memcached or valkey.</p>
239    pub fn get_engine(&self) -> &::std::option::Option<::std::string::String> {
240        self.inner.get_engine()
241    }
242    /// <p>Modifies the engine vesion listed in a serverless cache request.</p>
243    pub fn major_engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
244        self.inner = self.inner.major_engine_version(input.into());
245        self
246    }
247    /// <p>Modifies the engine vesion listed in a serverless cache request.</p>
248    pub fn set_major_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
249        self.inner = self.inner.set_major_engine_version(input);
250        self
251    }
252    /// <p>Modifies the engine vesion listed in a serverless cache request.</p>
253    pub fn get_major_engine_version(&self) -> &::std::option::Option<::std::string::String> {
254        self.inner.get_major_engine_version()
255    }
256}