aws_sdk_elasticache/operation/describe_reserved_cache_nodes_offerings/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::describe_reserved_cache_nodes_offerings::_describe_reserved_cache_nodes_offerings_output::DescribeReservedCacheNodesOfferingsOutputBuilder;
3
4pub use crate::operation::describe_reserved_cache_nodes_offerings::_describe_reserved_cache_nodes_offerings_input::DescribeReservedCacheNodesOfferingsInputBuilder;
5
6impl crate::operation::describe_reserved_cache_nodes_offerings::builders::DescribeReservedCacheNodesOfferingsInputBuilder {
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_offerings::DescribeReservedCacheNodesOfferingsOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::describe_reserved_cache_nodes_offerings::DescribeReservedCacheNodesOfferingsError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.describe_reserved_cache_nodes_offerings();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `DescribeReservedCacheNodesOfferings`.
24///
25/// <p>Lists available reserved cache node offerings.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct DescribeReservedCacheNodesOfferingsFluentBuilder {
28 handle: ::std::sync::Arc<crate::client::Handle>,
29 inner: crate::operation::describe_reserved_cache_nodes_offerings::builders::DescribeReservedCacheNodesOfferingsInputBuilder,
30 config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33 crate::client::customize::internal::CustomizableSend<
34 crate::operation::describe_reserved_cache_nodes_offerings::DescribeReservedCacheNodesOfferingsOutput,
35 crate::operation::describe_reserved_cache_nodes_offerings::DescribeReservedCacheNodesOfferingsError,
36 > for DescribeReservedCacheNodesOfferingsFluentBuilder
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_offerings::DescribeReservedCacheNodesOfferingsOutput,
44 crate::operation::describe_reserved_cache_nodes_offerings::DescribeReservedCacheNodesOfferingsError,
45 >,
46 > {
47 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48 }
49}
50impl DescribeReservedCacheNodesOfferingsFluentBuilder {
51 /// Creates a new `DescribeReservedCacheNodesOfferingsFluentBuilder`.
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 DescribeReservedCacheNodesOfferings as a reference.
60 pub fn as_input(&self) -> &crate::operation::describe_reserved_cache_nodes_offerings::builders::DescribeReservedCacheNodesOfferingsInputBuilder {
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_offerings::DescribeReservedCacheNodesOfferingsOutput,
75 ::aws_smithy_runtime_api::client::result::SdkError<
76 crate::operation::describe_reserved_cache_nodes_offerings::DescribeReservedCacheNodesOfferingsError,
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 =
85 crate::operation::describe_reserved_cache_nodes_offerings::DescribeReservedCacheNodesOfferings::operation_runtime_plugins(
86 self.handle.runtime_plugins.clone(),
87 &self.handle.conf,
88 self.config_override,
89 );
90 crate::operation::describe_reserved_cache_nodes_offerings::DescribeReservedCacheNodesOfferings::orchestrate(&runtime_plugins, input).await
91 }
92
93 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
94 pub fn customize(
95 self,
96 ) -> crate::client::customize::CustomizableOperation<
97 crate::operation::describe_reserved_cache_nodes_offerings::DescribeReservedCacheNodesOfferingsOutput,
98 crate::operation::describe_reserved_cache_nodes_offerings::DescribeReservedCacheNodesOfferingsError,
99 Self,
100 > {
101 crate::client::customize::CustomizableOperation::new(self)
102 }
103 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
104 self.set_config_override(::std::option::Option::Some(config_override.into()));
105 self
106 }
107
108 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
109 self.config_override = config_override;
110 self
111 }
112 /// Create a paginator for this request
113 ///
114 /// Paginators are used by calling [`send().await`](crate::operation::describe_reserved_cache_nodes_offerings::paginator::DescribeReservedCacheNodesOfferingsPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
115 pub fn into_paginator(
116 self,
117 ) -> crate::operation::describe_reserved_cache_nodes_offerings::paginator::DescribeReservedCacheNodesOfferingsPaginator {
118 crate::operation::describe_reserved_cache_nodes_offerings::paginator::DescribeReservedCacheNodesOfferingsPaginator::new(
119 self.handle,
120 self.inner,
121 )
122 }
123 /// <p>The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier.</p>
124 /// <p>Example: <code>438012d3-4052-4cc7-b2e3-8d3372e0e706</code></p>
125 pub fn reserved_cache_nodes_offering_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
126 self.inner = self.inner.reserved_cache_nodes_offering_id(input.into());
127 self
128 }
129 /// <p>The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier.</p>
130 /// <p>Example: <code>438012d3-4052-4cc7-b2e3-8d3372e0e706</code></p>
131 pub fn set_reserved_cache_nodes_offering_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132 self.inner = self.inner.set_reserved_cache_nodes_offering_id(input);
133 self
134 }
135 /// <p>The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier.</p>
136 /// <p>Example: <code>438012d3-4052-4cc7-b2e3-8d3372e0e706</code></p>
137 pub fn get_reserved_cache_nodes_offering_id(&self) -> &::std::option::Option<::std::string::String> {
138 self.inner.get_reserved_cache_nodes_offering_id()
139 }
140 /// <p>The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type.</p>
141 /// <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>
142 /// <ul>
143 /// <li>
144 /// <p>General purpose:</p>
145 /// <ul>
146 /// <li>
147 /// <p>Current generation:</p>
148 /// <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>
149 /// <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>
150 /// </note>
151 /// <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>
152 /// <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>
153 /// <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>
154 /// <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>
155 /// <p><b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code></p>
156 /// <p><b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code></p></li>
157 /// <li>
158 /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
159 /// <p><b>T1 node types:</b> <code>cache.t1.micro</code></p>
160 /// <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>
161 /// <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>
162 /// </ul></li>
163 /// <li>
164 /// <p>Compute optimized:</p>
165 /// <ul>
166 /// <li>
167 /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
168 /// <p><b>C1 node types:</b> <code>cache.c1.xlarge</code></p></li>
169 /// </ul></li>
170 /// <li>
171 /// <p>Memory optimized:</p>
172 /// <ul>
173 /// <li>
174 /// <p>Current generation:</p>
175 /// <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>
176 /// <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>
177 /// </note>
178 /// <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>
179 /// <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>
180 /// <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>
181 /// <li>
182 /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
183 /// <p><b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code></p>
184 /// <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>
185 /// </ul></li>
186 /// </ul>
187 /// <p><b>Additional node type info</b></p>
188 /// <ul>
189 /// <li>
190 /// <p>All current generation instance types are created in Amazon VPC by default.</p></li>
191 /// <li>
192 /// <p>Valkey or Redis OSS append-only files (AOF) are not supported for T1 or T2 instances.</p></li>
193 /// <li>
194 /// <p>Valkey or Redis OSS Multi-AZ with automatic failover is not supported on T1 instances.</p></li>
195 /// <li>
196 /// <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>
197 /// </ul>
198 pub fn cache_node_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
199 self.inner = self.inner.cache_node_type(input.into());
200 self
201 }
202 /// <p>The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type.</p>
203 /// <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>
204 /// <ul>
205 /// <li>
206 /// <p>General purpose:</p>
207 /// <ul>
208 /// <li>
209 /// <p>Current generation:</p>
210 /// <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>
211 /// <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>
212 /// </note>
213 /// <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>
214 /// <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>
215 /// <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>
216 /// <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>
217 /// <p><b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code></p>
218 /// <p><b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code></p></li>
219 /// <li>
220 /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
221 /// <p><b>T1 node types:</b> <code>cache.t1.micro</code></p>
222 /// <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>
223 /// <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>
224 /// </ul></li>
225 /// <li>
226 /// <p>Compute optimized:</p>
227 /// <ul>
228 /// <li>
229 /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
230 /// <p><b>C1 node types:</b> <code>cache.c1.xlarge</code></p></li>
231 /// </ul></li>
232 /// <li>
233 /// <p>Memory optimized:</p>
234 /// <ul>
235 /// <li>
236 /// <p>Current generation:</p>
237 /// <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>
238 /// <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>
239 /// </note>
240 /// <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>
241 /// <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>
242 /// <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>
243 /// <li>
244 /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
245 /// <p><b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code></p>
246 /// <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>
247 /// </ul></li>
248 /// </ul>
249 /// <p><b>Additional node type info</b></p>
250 /// <ul>
251 /// <li>
252 /// <p>All current generation instance types are created in Amazon VPC by default.</p></li>
253 /// <li>
254 /// <p>Valkey or Redis OSS append-only files (AOF) are not supported for T1 or T2 instances.</p></li>
255 /// <li>
256 /// <p>Valkey or Redis OSS Multi-AZ with automatic failover is not supported on T1 instances.</p></li>
257 /// <li>
258 /// <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>
259 /// </ul>
260 pub fn set_cache_node_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
261 self.inner = self.inner.set_cache_node_type(input);
262 self
263 }
264 /// <p>The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type.</p>
265 /// <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>
266 /// <ul>
267 /// <li>
268 /// <p>General purpose:</p>
269 /// <ul>
270 /// <li>
271 /// <p>Current generation:</p>
272 /// <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>
273 /// <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>
274 /// </note>
275 /// <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>
276 /// <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>
277 /// <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>
278 /// <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>
279 /// <p><b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code></p>
280 /// <p><b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code></p></li>
281 /// <li>
282 /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
283 /// <p><b>T1 node types:</b> <code>cache.t1.micro</code></p>
284 /// <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>
285 /// <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>
286 /// </ul></li>
287 /// <li>
288 /// <p>Compute optimized:</p>
289 /// <ul>
290 /// <li>
291 /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
292 /// <p><b>C1 node types:</b> <code>cache.c1.xlarge</code></p></li>
293 /// </ul></li>
294 /// <li>
295 /// <p>Memory optimized:</p>
296 /// <ul>
297 /// <li>
298 /// <p>Current generation:</p>
299 /// <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>
300 /// <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>
301 /// </note>
302 /// <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>
303 /// <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>
304 /// <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>
305 /// <li>
306 /// <p>Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)</p>
307 /// <p><b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code></p>
308 /// <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>
309 /// </ul></li>
310 /// </ul>
311 /// <p><b>Additional node type info</b></p>
312 /// <ul>
313 /// <li>
314 /// <p>All current generation instance types are created in Amazon VPC by default.</p></li>
315 /// <li>
316 /// <p>Valkey or Redis OSS append-only files (AOF) are not supported for T1 or T2 instances.</p></li>
317 /// <li>
318 /// <p>Valkey or Redis OSS Multi-AZ with automatic failover is not supported on T1 instances.</p></li>
319 /// <li>
320 /// <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>
321 /// </ul>
322 pub fn get_cache_node_type(&self) -> &::std::option::Option<::std::string::String> {
323 self.inner.get_cache_node_type()
324 }
325 /// <p>Duration filter value, specified in years or seconds. Use this parameter to show only reservations for a given duration.</p>
326 /// <p>Valid Values: <code>1 | 3 | 31536000 | 94608000</code></p>
327 pub fn duration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
328 self.inner = self.inner.duration(input.into());
329 self
330 }
331 /// <p>Duration filter value, specified in years or seconds. Use this parameter to show only reservations for a given duration.</p>
332 /// <p>Valid Values: <code>1 | 3 | 31536000 | 94608000</code></p>
333 pub fn set_duration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
334 self.inner = self.inner.set_duration(input);
335 self
336 }
337 /// <p>Duration filter value, specified in years or seconds. Use this parameter to show only reservations for a given duration.</p>
338 /// <p>Valid Values: <code>1 | 3 | 31536000 | 94608000</code></p>
339 pub fn get_duration(&self) -> &::std::option::Option<::std::string::String> {
340 self.inner.get_duration()
341 }
342 /// <p>The product description filter value. Use this parameter to show only the available offerings matching the specified product description.</p>
343 pub fn product_description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
344 self.inner = self.inner.product_description(input.into());
345 self
346 }
347 /// <p>The product description filter value. Use this parameter to show only the available offerings matching the specified product description.</p>
348 pub fn set_product_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
349 self.inner = self.inner.set_product_description(input);
350 self
351 }
352 /// <p>The product description filter value. Use this parameter to show only the available offerings matching the specified product description.</p>
353 pub fn get_product_description(&self) -> &::std::option::Option<::std::string::String> {
354 self.inner.get_product_description()
355 }
356 /// <p>The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type.</p>
357 /// <p>Valid Values: <code>"Light Utilization"|"Medium Utilization"|"Heavy Utilization" |"All Upfront"|"Partial Upfront"| "No Upfront"</code></p>
358 pub fn offering_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
359 self.inner = self.inner.offering_type(input.into());
360 self
361 }
362 /// <p>The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type.</p>
363 /// <p>Valid Values: <code>"Light Utilization"|"Medium Utilization"|"Heavy Utilization" |"All Upfront"|"Partial Upfront"| "No Upfront"</code></p>
364 pub fn set_offering_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
365 self.inner = self.inner.set_offering_type(input);
366 self
367 }
368 /// <p>The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type.</p>
369 /// <p>Valid Values: <code>"Light Utilization"|"Medium Utilization"|"Heavy Utilization" |"All Upfront"|"Partial Upfront"| "No Upfront"</code></p>
370 pub fn get_offering_type(&self) -> &::std::option::Option<::std::string::String> {
371 self.inner.get_offering_type()
372 }
373 /// <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>
374 /// <p>Default: 100</p>
375 /// <p>Constraints: minimum 20; maximum 100.</p>
376 pub fn max_records(mut self, input: i32) -> Self {
377 self.inner = self.inner.max_records(input);
378 self
379 }
380 /// <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>
381 /// <p>Default: 100</p>
382 /// <p>Constraints: minimum 20; maximum 100.</p>
383 pub fn set_max_records(mut self, input: ::std::option::Option<i32>) -> Self {
384 self.inner = self.inner.set_max_records(input);
385 self
386 }
387 /// <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>
388 /// <p>Default: 100</p>
389 /// <p>Constraints: minimum 20; maximum 100.</p>
390 pub fn get_max_records(&self) -> &::std::option::Option<i32> {
391 self.inner.get_max_records()
392 }
393 /// <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>
394 pub fn marker(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
395 self.inner = self.inner.marker(input.into());
396 self
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 set_marker(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
400 self.inner = self.inner.set_marker(input);
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 get_marker(&self) -> &::std::option::Option<::std::string::String> {
405 self.inner.get_marker()
406 }
407}