aws_sdk_elasticache/operation/describe_reserved_cache_nodes/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::describe_reserved_cache_nodes::_describe_reserved_cache_nodes_output::DescribeReservedCacheNodesOutputBuilder;
3
4pub use crate::operation::describe_reserved_cache_nodes::_describe_reserved_cache_nodes_input::DescribeReservedCacheNodesInputBuilder;
5
6impl crate::operation::describe_reserved_cache_nodes::builders::DescribeReservedCacheNodesInputBuilder {
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::describe_reserved_cache_nodes::DescribeReservedCacheNodesOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::describe_reserved_cache_nodes::DescribeReservedCacheNodesError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.describe_reserved_cache_nodes();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `DescribeReservedCacheNodes`.
24///
25/// <p>Returns information about reserved cache nodes for this account, or about a specified reserved cache node.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct DescribeReservedCacheNodesFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::describe_reserved_cache_nodes::builders::DescribeReservedCacheNodesInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::describe_reserved_cache_nodes::DescribeReservedCacheNodesOutput,
35        crate::operation::describe_reserved_cache_nodes::DescribeReservedCacheNodesError,
36    > for DescribeReservedCacheNodesFluentBuilder
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::describe_reserved_cache_nodes::DescribeReservedCacheNodesOutput,
44            crate::operation::describe_reserved_cache_nodes::DescribeReservedCacheNodesError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl DescribeReservedCacheNodesFluentBuilder {
51    /// Creates a new `DescribeReservedCacheNodesFluentBuilder`.
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 DescribeReservedCacheNodes as a reference.
60    pub fn as_input(&self) -> &crate::operation::describe_reserved_cache_nodes::builders::DescribeReservedCacheNodesInputBuilder {
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::describe_reserved_cache_nodes::DescribeReservedCacheNodesOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::describe_reserved_cache_nodes::DescribeReservedCacheNodesError,
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::describe_reserved_cache_nodes::DescribeReservedCacheNodes::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::describe_reserved_cache_nodes::DescribeReservedCacheNodes::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::describe_reserved_cache_nodes::DescribeReservedCacheNodesOutput,
97        crate::operation::describe_reserved_cache_nodes::DescribeReservedCacheNodesError,
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    /// Create a paginator for this request
112    ///
113    /// Paginators are used by calling [`send().await`](crate::operation::describe_reserved_cache_nodes::paginator::DescribeReservedCacheNodesPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
114    pub fn into_paginator(self) -> crate::operation::describe_reserved_cache_nodes::paginator::DescribeReservedCacheNodesPaginator {
115        crate::operation::describe_reserved_cache_nodes::paginator::DescribeReservedCacheNodesPaginator::new(self.handle, self.inner)
116    }
117    /// <p>The reserved cache node identifier filter value. Use this parameter to show only the reservation that matches the specified reservation ID.</p>
118    pub fn reserved_cache_node_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
119        self.inner = self.inner.reserved_cache_node_id(input.into());
120        self
121    }
122    /// <p>The reserved cache node identifier filter value. Use this parameter to show only the reservation that matches the specified reservation ID.</p>
123    pub fn set_reserved_cache_node_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
124        self.inner = self.inner.set_reserved_cache_node_id(input);
125        self
126    }
127    /// <p>The reserved cache node identifier filter value. Use this parameter to show only the reservation that matches the specified reservation ID.</p>
128    pub fn get_reserved_cache_node_id(&self) -> &::std::option::Option<::std::string::String> {
129        self.inner.get_reserved_cache_node_id()
130    }
131    /// <p>The offering identifier filter value. Use this parameter to show only purchased reservations matching the specified offering identifier.</p>
132    pub fn reserved_cache_nodes_offering_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
133        self.inner = self.inner.reserved_cache_nodes_offering_id(input.into());
134        self
135    }
136    /// <p>The offering identifier filter value. Use this parameter to show only purchased reservations matching the specified offering identifier.</p>
137    pub fn set_reserved_cache_nodes_offering_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
138        self.inner = self.inner.set_reserved_cache_nodes_offering_id(input);
139        self
140    }
141    /// <p>The offering identifier filter value. Use this parameter to show only purchased reservations matching the specified offering identifier.</p>
142    pub fn get_reserved_cache_nodes_offering_id(&self) -> &::std::option::Option<::std::string::String> {
143        self.inner.get_reserved_cache_nodes_offering_id()
144    }
145    /// <p>The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type.</p>
146    /// <p>The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.</p>
147    /// <ul>
148    /// <li>
149    /// <p>General purpose:</p>
150    /// <ul>
151    /// <li>
152    /// <p>Current generation:</p>
153    /// <p><b>M7g node types</b>: <code>cache.m7g.large</code>, <code>cache.m7g.xlarge</code>, <code>cache.m7g.2xlarge</code>, <code>cache.m7g.4xlarge</code>, <code>cache.m7g.8xlarge</code>, <code>cache.m7g.12xlarge</code>, <code>cache.m7g.16xlarge</code></p><note>
154    /// <p>For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a></p>
155    /// </note>
156    /// <p><b>M6g node types</b> (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code></p>
157    /// <p><b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code></p>
158    /// <p><b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code></p>
159    /// <p><b>T4g node types</b> (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): <code>cache.t4g.micro</code>, <code>cache.t4g.small</code>, <code>cache.t4g.medium</code></p>
160    /// <p><b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code></p>
161    /// <p><b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code></p></li>
162    /// <li>
163    /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
164    /// <p><b>T1 node types:</b> <code>cache.t1.micro</code></p>
165    /// <p><b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code></p>
166    /// <p><b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code></p></li>
167    /// </ul></li>
168    /// <li>
169    /// <p>Compute optimized:</p>
170    /// <ul>
171    /// <li>
172    /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
173    /// <p><b>C1 node types:</b> <code>cache.c1.xlarge</code></p></li>
174    /// </ul></li>
175    /// <li>
176    /// <p>Memory optimized:</p>
177    /// <ul>
178    /// <li>
179    /// <p>Current generation:</p>
180    /// <p><b>R7g node types</b>: <code>cache.r7g.large</code>, <code>cache.r7g.xlarge</code>, <code>cache.r7g.2xlarge</code>, <code>cache.r7g.4xlarge</code>, <code>cache.r7g.8xlarge</code>, <code>cache.r7g.12xlarge</code>, <code>cache.r7g.16xlarge</code></p><note>
181    /// <p>For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a></p>
182    /// </note>
183    /// <p><b>R6g node types</b> (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code></p>
184    /// <p><b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code></p>
185    /// <p><b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code></p></li>
186    /// <li>
187    /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
188    /// <p><b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code></p>
189    /// <p><b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code></p></li>
190    /// </ul></li>
191    /// </ul>
192    /// <p><b>Additional node type info</b></p>
193    /// <ul>
194    /// <li>
195    /// <p>All current generation instance types are created in Amazon VPC by default.</p></li>
196    /// <li>
197    /// <p>Valkey or Redis OSS append-only files (AOF) are not supported for T1 or T2 instances.</p></li>
198    /// <li>
199    /// <p>Valkey or Redis OSS Multi-AZ with automatic failover is not supported on T1 instances.</p></li>
200    /// <li>
201    /// <p>The configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Valkey, or on Redis OSS version 2.8.22 and later.</p></li>
202    /// </ul>
203    pub fn cache_node_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
204        self.inner = self.inner.cache_node_type(input.into());
205        self
206    }
207    /// <p>The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type.</p>
208    /// <p>The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.</p>
209    /// <ul>
210    /// <li>
211    /// <p>General purpose:</p>
212    /// <ul>
213    /// <li>
214    /// <p>Current generation:</p>
215    /// <p><b>M7g node types</b>: <code>cache.m7g.large</code>, <code>cache.m7g.xlarge</code>, <code>cache.m7g.2xlarge</code>, <code>cache.m7g.4xlarge</code>, <code>cache.m7g.8xlarge</code>, <code>cache.m7g.12xlarge</code>, <code>cache.m7g.16xlarge</code></p><note>
216    /// <p>For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a></p>
217    /// </note>
218    /// <p><b>M6g node types</b> (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code></p>
219    /// <p><b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code></p>
220    /// <p><b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code></p>
221    /// <p><b>T4g node types</b> (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): <code>cache.t4g.micro</code>, <code>cache.t4g.small</code>, <code>cache.t4g.medium</code></p>
222    /// <p><b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code></p>
223    /// <p><b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code></p></li>
224    /// <li>
225    /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
226    /// <p><b>T1 node types:</b> <code>cache.t1.micro</code></p>
227    /// <p><b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code></p>
228    /// <p><b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code></p></li>
229    /// </ul></li>
230    /// <li>
231    /// <p>Compute optimized:</p>
232    /// <ul>
233    /// <li>
234    /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
235    /// <p><b>C1 node types:</b> <code>cache.c1.xlarge</code></p></li>
236    /// </ul></li>
237    /// <li>
238    /// <p>Memory optimized:</p>
239    /// <ul>
240    /// <li>
241    /// <p>Current generation:</p>
242    /// <p><b>R7g node types</b>: <code>cache.r7g.large</code>, <code>cache.r7g.xlarge</code>, <code>cache.r7g.2xlarge</code>, <code>cache.r7g.4xlarge</code>, <code>cache.r7g.8xlarge</code>, <code>cache.r7g.12xlarge</code>, <code>cache.r7g.16xlarge</code></p><note>
243    /// <p>For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a></p>
244    /// </note>
245    /// <p><b>R6g node types</b> (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code></p>
246    /// <p><b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code></p>
247    /// <p><b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code></p></li>
248    /// <li>
249    /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
250    /// <p><b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code></p>
251    /// <p><b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code></p></li>
252    /// </ul></li>
253    /// </ul>
254    /// <p><b>Additional node type info</b></p>
255    /// <ul>
256    /// <li>
257    /// <p>All current generation instance types are created in Amazon VPC by default.</p></li>
258    /// <li>
259    /// <p>Valkey or Redis OSS append-only files (AOF) are not supported for T1 or T2 instances.</p></li>
260    /// <li>
261    /// <p>Valkey or Redis OSS Multi-AZ with automatic failover is not supported on T1 instances.</p></li>
262    /// <li>
263    /// <p>The configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Valkey, or on Redis OSS version 2.8.22 and later.</p></li>
264    /// </ul>
265    pub fn set_cache_node_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
266        self.inner = self.inner.set_cache_node_type(input);
267        self
268    }
269    /// <p>The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type.</p>
270    /// <p>The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.</p>
271    /// <ul>
272    /// <li>
273    /// <p>General purpose:</p>
274    /// <ul>
275    /// <li>
276    /// <p>Current generation:</p>
277    /// <p><b>M7g node types</b>: <code>cache.m7g.large</code>, <code>cache.m7g.xlarge</code>, <code>cache.m7g.2xlarge</code>, <code>cache.m7g.4xlarge</code>, <code>cache.m7g.8xlarge</code>, <code>cache.m7g.12xlarge</code>, <code>cache.m7g.16xlarge</code></p><note>
278    /// <p>For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a></p>
279    /// </note>
280    /// <p><b>M6g node types</b> (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code></p>
281    /// <p><b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code></p>
282    /// <p><b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code></p>
283    /// <p><b>T4g node types</b> (available only for Redis OSS engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): <code>cache.t4g.micro</code>, <code>cache.t4g.small</code>, <code>cache.t4g.medium</code></p>
284    /// <p><b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code></p>
285    /// <p><b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code></p></li>
286    /// <li>
287    /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
288    /// <p><b>T1 node types:</b> <code>cache.t1.micro</code></p>
289    /// <p><b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code></p>
290    /// <p><b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code></p></li>
291    /// </ul></li>
292    /// <li>
293    /// <p>Compute optimized:</p>
294    /// <ul>
295    /// <li>
296    /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
297    /// <p><b>C1 node types:</b> <code>cache.c1.xlarge</code></p></li>
298    /// </ul></li>
299    /// <li>
300    /// <p>Memory optimized:</p>
301    /// <ul>
302    /// <li>
303    /// <p>Current generation:</p>
304    /// <p><b>R7g node types</b>: <code>cache.r7g.large</code>, <code>cache.r7g.xlarge</code>, <code>cache.r7g.2xlarge</code>, <code>cache.r7g.4xlarge</code>, <code>cache.r7g.8xlarge</code>, <code>cache.r7g.12xlarge</code>, <code>cache.r7g.16xlarge</code></p><note>
305    /// <p>For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a></p>
306    /// </note>
307    /// <p><b>R6g node types</b> (available only for Redis OSS engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code></p>
308    /// <p><b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code></p>
309    /// <p><b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code></p></li>
310    /// <li>
311    /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
312    /// <p><b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code></p>
313    /// <p><b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code></p></li>
314    /// </ul></li>
315    /// </ul>
316    /// <p><b>Additional node type info</b></p>
317    /// <ul>
318    /// <li>
319    /// <p>All current generation instance types are created in Amazon VPC by default.</p></li>
320    /// <li>
321    /// <p>Valkey or Redis OSS append-only files (AOF) are not supported for T1 or T2 instances.</p></li>
322    /// <li>
323    /// <p>Valkey or Redis OSS Multi-AZ with automatic failover is not supported on T1 instances.</p></li>
324    /// <li>
325    /// <p>The configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Valkey, or on Redis OSS version 2.8.22 and later.</p></li>
326    /// </ul>
327    pub fn get_cache_node_type(&self) -> &::std::option::Option<::std::string::String> {
328        self.inner.get_cache_node_type()
329    }
330    /// <p>The duration filter value, specified in years or seconds. Use this parameter to show only reservations for this duration.</p>
331    /// <p>Valid Values: <code>1 | 3 | 31536000 | 94608000</code></p>
332    pub fn duration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
333        self.inner = self.inner.duration(input.into());
334        self
335    }
336    /// <p>The duration filter value, specified in years or seconds. Use this parameter to show only reservations for this duration.</p>
337    /// <p>Valid Values: <code>1 | 3 | 31536000 | 94608000</code></p>
338    pub fn set_duration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
339        self.inner = self.inner.set_duration(input);
340        self
341    }
342    /// <p>The duration filter value, specified in years or seconds. Use this parameter to show only reservations for this duration.</p>
343    /// <p>Valid Values: <code>1 | 3 | 31536000 | 94608000</code></p>
344    pub fn get_duration(&self) -> &::std::option::Option<::std::string::String> {
345        self.inner.get_duration()
346    }
347    /// <p>The product description filter value. Use this parameter to show only those reservations matching the specified product description.</p>
348    pub fn product_description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
349        self.inner = self.inner.product_description(input.into());
350        self
351    }
352    /// <p>The product description filter value. Use this parameter to show only those reservations matching the specified product description.</p>
353    pub fn set_product_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
354        self.inner = self.inner.set_product_description(input);
355        self
356    }
357    /// <p>The product description filter value. Use this parameter to show only those reservations matching the specified product description.</p>
358    pub fn get_product_description(&self) -> &::std::option::Option<::std::string::String> {
359        self.inner.get_product_description()
360    }
361    /// <p>The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type.</p>
362    /// <p>Valid values: <code>"Light Utilization"|"Medium Utilization"|"Heavy Utilization"|"All Upfront"|"Partial Upfront"| "No Upfront"</code></p>
363    pub fn offering_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
364        self.inner = self.inner.offering_type(input.into());
365        self
366    }
367    /// <p>The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type.</p>
368    /// <p>Valid values: <code>"Light Utilization"|"Medium Utilization"|"Heavy Utilization"|"All Upfront"|"Partial Upfront"| "No Upfront"</code></p>
369    pub fn set_offering_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
370        self.inner = self.inner.set_offering_type(input);
371        self
372    }
373    /// <p>The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type.</p>
374    /// <p>Valid values: <code>"Light Utilization"|"Medium Utilization"|"Heavy Utilization"|"All Upfront"|"Partial Upfront"| "No Upfront"</code></p>
375    pub fn get_offering_type(&self) -> &::std::option::Option<::std::string::String> {
376        self.inner.get_offering_type()
377    }
378    /// <p>The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved.</p>
379    /// <p>Default: 100</p>
380    /// <p>Constraints: minimum 20; maximum 100.</p>
381    pub fn max_records(mut self, input: i32) -> Self {
382        self.inner = self.inner.max_records(input);
383        self
384    }
385    /// <p>The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved.</p>
386    /// <p>Default: 100</p>
387    /// <p>Constraints: minimum 20; maximum 100.</p>
388    pub fn set_max_records(mut self, input: ::std::option::Option<i32>) -> Self {
389        self.inner = self.inner.set_max_records(input);
390        self
391    }
392    /// <p>The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved.</p>
393    /// <p>Default: 100</p>
394    /// <p>Constraints: minimum 20; maximum 100.</p>
395    pub fn get_max_records(&self) -> &::std::option::Option<i32> {
396        self.inner.get_max_records()
397    }
398    /// <p>An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.</p>
399    pub fn marker(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
400        self.inner = self.inner.marker(input.into());
401        self
402    }
403    /// <p>An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.</p>
404    pub fn set_marker(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
405        self.inner = self.inner.set_marker(input);
406        self
407    }
408    /// <p>An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.</p>
409    pub fn get_marker(&self) -> &::std::option::Option<::std::string::String> {
410        self.inner.get_marker()
411    }
412}