1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/elasticache/ElastiCache_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/elasticache/model/Parameter.h>
12 #include <aws/elasticache/model/CacheNodeTypeSpecificParameter.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Xml
20 {
21   class XmlNode;
22 } // namespace Xml
23 } // namespace Utils
24 namespace ElastiCache
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Represents the output of a <code>DescribeEngineDefaultParameters</code>
31    * operation.</p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/EngineDefaults">AWS
33    * API Reference</a></p>
34    */
35   class AWS_ELASTICACHE_API EngineDefaults
36   {
37   public:
38     EngineDefaults();
39     EngineDefaults(const Aws::Utils::Xml::XmlNode& xmlNode);
40     EngineDefaults& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
41 
42     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
43     void OutputToStream(Aws::OStream& oStream, const char* location) const;
44 
45 
46     /**
47      * <p>Specifies the name of the cache parameter group family to which the engine
48      * default parameters apply.</p> <p>Valid values are: <code>memcached1.4</code> |
49      * <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> |
50      * <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> |
51      * <code>redis5.0</code> | <code>redis6.x</code> | </p>
52      */
GetCacheParameterGroupFamily()53     inline const Aws::String& GetCacheParameterGroupFamily() const{ return m_cacheParameterGroupFamily; }
54 
55     /**
56      * <p>Specifies the name of the cache parameter group family to which the engine
57      * default parameters apply.</p> <p>Valid values are: <code>memcached1.4</code> |
58      * <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> |
59      * <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> |
60      * <code>redis5.0</code> | <code>redis6.x</code> | </p>
61      */
CacheParameterGroupFamilyHasBeenSet()62     inline bool CacheParameterGroupFamilyHasBeenSet() const { return m_cacheParameterGroupFamilyHasBeenSet; }
63 
64     /**
65      * <p>Specifies the name of the cache parameter group family to which the engine
66      * default parameters apply.</p> <p>Valid values are: <code>memcached1.4</code> |
67      * <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> |
68      * <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> |
69      * <code>redis5.0</code> | <code>redis6.x</code> | </p>
70      */
SetCacheParameterGroupFamily(const Aws::String & value)71     inline void SetCacheParameterGroupFamily(const Aws::String& value) { m_cacheParameterGroupFamilyHasBeenSet = true; m_cacheParameterGroupFamily = value; }
72 
73     /**
74      * <p>Specifies the name of the cache parameter group family to which the engine
75      * default parameters apply.</p> <p>Valid values are: <code>memcached1.4</code> |
76      * <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> |
77      * <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> |
78      * <code>redis5.0</code> | <code>redis6.x</code> | </p>
79      */
SetCacheParameterGroupFamily(Aws::String && value)80     inline void SetCacheParameterGroupFamily(Aws::String&& value) { m_cacheParameterGroupFamilyHasBeenSet = true; m_cacheParameterGroupFamily = std::move(value); }
81 
82     /**
83      * <p>Specifies the name of the cache parameter group family to which the engine
84      * default parameters apply.</p> <p>Valid values are: <code>memcached1.4</code> |
85      * <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> |
86      * <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> |
87      * <code>redis5.0</code> | <code>redis6.x</code> | </p>
88      */
SetCacheParameterGroupFamily(const char * value)89     inline void SetCacheParameterGroupFamily(const char* value) { m_cacheParameterGroupFamilyHasBeenSet = true; m_cacheParameterGroupFamily.assign(value); }
90 
91     /**
92      * <p>Specifies the name of the cache parameter group family to which the engine
93      * default parameters apply.</p> <p>Valid values are: <code>memcached1.4</code> |
94      * <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> |
95      * <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> |
96      * <code>redis5.0</code> | <code>redis6.x</code> | </p>
97      */
WithCacheParameterGroupFamily(const Aws::String & value)98     inline EngineDefaults& WithCacheParameterGroupFamily(const Aws::String& value) { SetCacheParameterGroupFamily(value); return *this;}
99 
100     /**
101      * <p>Specifies the name of the cache parameter group family to which the engine
102      * default parameters apply.</p> <p>Valid values are: <code>memcached1.4</code> |
103      * <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> |
104      * <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> |
105      * <code>redis5.0</code> | <code>redis6.x</code> | </p>
106      */
WithCacheParameterGroupFamily(Aws::String && value)107     inline EngineDefaults& WithCacheParameterGroupFamily(Aws::String&& value) { SetCacheParameterGroupFamily(std::move(value)); return *this;}
108 
109     /**
110      * <p>Specifies the name of the cache parameter group family to which the engine
111      * default parameters apply.</p> <p>Valid values are: <code>memcached1.4</code> |
112      * <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> |
113      * <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> |
114      * <code>redis5.0</code> | <code>redis6.x</code> | </p>
115      */
WithCacheParameterGroupFamily(const char * value)116     inline EngineDefaults& WithCacheParameterGroupFamily(const char* value) { SetCacheParameterGroupFamily(value); return *this;}
117 
118 
119     /**
120      * <p>Provides an identifier to allow retrieval of paginated results.</p>
121      */
GetMarker()122     inline const Aws::String& GetMarker() const{ return m_marker; }
123 
124     /**
125      * <p>Provides an identifier to allow retrieval of paginated results.</p>
126      */
MarkerHasBeenSet()127     inline bool MarkerHasBeenSet() const { return m_markerHasBeenSet; }
128 
129     /**
130      * <p>Provides an identifier to allow retrieval of paginated results.</p>
131      */
SetMarker(const Aws::String & value)132     inline void SetMarker(const Aws::String& value) { m_markerHasBeenSet = true; m_marker = value; }
133 
134     /**
135      * <p>Provides an identifier to allow retrieval of paginated results.</p>
136      */
SetMarker(Aws::String && value)137     inline void SetMarker(Aws::String&& value) { m_markerHasBeenSet = true; m_marker = std::move(value); }
138 
139     /**
140      * <p>Provides an identifier to allow retrieval of paginated results.</p>
141      */
SetMarker(const char * value)142     inline void SetMarker(const char* value) { m_markerHasBeenSet = true; m_marker.assign(value); }
143 
144     /**
145      * <p>Provides an identifier to allow retrieval of paginated results.</p>
146      */
WithMarker(const Aws::String & value)147     inline EngineDefaults& WithMarker(const Aws::String& value) { SetMarker(value); return *this;}
148 
149     /**
150      * <p>Provides an identifier to allow retrieval of paginated results.</p>
151      */
WithMarker(Aws::String && value)152     inline EngineDefaults& WithMarker(Aws::String&& value) { SetMarker(std::move(value)); return *this;}
153 
154     /**
155      * <p>Provides an identifier to allow retrieval of paginated results.</p>
156      */
WithMarker(const char * value)157     inline EngineDefaults& WithMarker(const char* value) { SetMarker(value); return *this;}
158 
159 
160     /**
161      * <p>Contains a list of engine default parameters.</p>
162      */
GetParameters()163     inline const Aws::Vector<Parameter>& GetParameters() const{ return m_parameters; }
164 
165     /**
166      * <p>Contains a list of engine default parameters.</p>
167      */
ParametersHasBeenSet()168     inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; }
169 
170     /**
171      * <p>Contains a list of engine default parameters.</p>
172      */
SetParameters(const Aws::Vector<Parameter> & value)173     inline void SetParameters(const Aws::Vector<Parameter>& value) { m_parametersHasBeenSet = true; m_parameters = value; }
174 
175     /**
176      * <p>Contains a list of engine default parameters.</p>
177      */
SetParameters(Aws::Vector<Parameter> && value)178     inline void SetParameters(Aws::Vector<Parameter>&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); }
179 
180     /**
181      * <p>Contains a list of engine default parameters.</p>
182      */
WithParameters(const Aws::Vector<Parameter> & value)183     inline EngineDefaults& WithParameters(const Aws::Vector<Parameter>& value) { SetParameters(value); return *this;}
184 
185     /**
186      * <p>Contains a list of engine default parameters.</p>
187      */
WithParameters(Aws::Vector<Parameter> && value)188     inline EngineDefaults& WithParameters(Aws::Vector<Parameter>&& value) { SetParameters(std::move(value)); return *this;}
189 
190     /**
191      * <p>Contains a list of engine default parameters.</p>
192      */
AddParameters(const Parameter & value)193     inline EngineDefaults& AddParameters(const Parameter& value) { m_parametersHasBeenSet = true; m_parameters.push_back(value); return *this; }
194 
195     /**
196      * <p>Contains a list of engine default parameters.</p>
197      */
AddParameters(Parameter && value)198     inline EngineDefaults& AddParameters(Parameter&& value) { m_parametersHasBeenSet = true; m_parameters.push_back(std::move(value)); return *this; }
199 
200 
201     /**
202      * <p>A list of parameters specific to a particular cache node type. Each element
203      * in the list contains detailed information about one parameter.</p>
204      */
GetCacheNodeTypeSpecificParameters()205     inline const Aws::Vector<CacheNodeTypeSpecificParameter>& GetCacheNodeTypeSpecificParameters() const{ return m_cacheNodeTypeSpecificParameters; }
206 
207     /**
208      * <p>A list of parameters specific to a particular cache node type. Each element
209      * in the list contains detailed information about one parameter.</p>
210      */
CacheNodeTypeSpecificParametersHasBeenSet()211     inline bool CacheNodeTypeSpecificParametersHasBeenSet() const { return m_cacheNodeTypeSpecificParametersHasBeenSet; }
212 
213     /**
214      * <p>A list of parameters specific to a particular cache node type. Each element
215      * in the list contains detailed information about one parameter.</p>
216      */
SetCacheNodeTypeSpecificParameters(const Aws::Vector<CacheNodeTypeSpecificParameter> & value)217     inline void SetCacheNodeTypeSpecificParameters(const Aws::Vector<CacheNodeTypeSpecificParameter>& value) { m_cacheNodeTypeSpecificParametersHasBeenSet = true; m_cacheNodeTypeSpecificParameters = value; }
218 
219     /**
220      * <p>A list of parameters specific to a particular cache node type. Each element
221      * in the list contains detailed information about one parameter.</p>
222      */
SetCacheNodeTypeSpecificParameters(Aws::Vector<CacheNodeTypeSpecificParameter> && value)223     inline void SetCacheNodeTypeSpecificParameters(Aws::Vector<CacheNodeTypeSpecificParameter>&& value) { m_cacheNodeTypeSpecificParametersHasBeenSet = true; m_cacheNodeTypeSpecificParameters = std::move(value); }
224 
225     /**
226      * <p>A list of parameters specific to a particular cache node type. Each element
227      * in the list contains detailed information about one parameter.</p>
228      */
WithCacheNodeTypeSpecificParameters(const Aws::Vector<CacheNodeTypeSpecificParameter> & value)229     inline EngineDefaults& WithCacheNodeTypeSpecificParameters(const Aws::Vector<CacheNodeTypeSpecificParameter>& value) { SetCacheNodeTypeSpecificParameters(value); return *this;}
230 
231     /**
232      * <p>A list of parameters specific to a particular cache node type. Each element
233      * in the list contains detailed information about one parameter.</p>
234      */
WithCacheNodeTypeSpecificParameters(Aws::Vector<CacheNodeTypeSpecificParameter> && value)235     inline EngineDefaults& WithCacheNodeTypeSpecificParameters(Aws::Vector<CacheNodeTypeSpecificParameter>&& value) { SetCacheNodeTypeSpecificParameters(std::move(value)); return *this;}
236 
237     /**
238      * <p>A list of parameters specific to a particular cache node type. Each element
239      * in the list contains detailed information about one parameter.</p>
240      */
AddCacheNodeTypeSpecificParameters(const CacheNodeTypeSpecificParameter & value)241     inline EngineDefaults& AddCacheNodeTypeSpecificParameters(const CacheNodeTypeSpecificParameter& value) { m_cacheNodeTypeSpecificParametersHasBeenSet = true; m_cacheNodeTypeSpecificParameters.push_back(value); return *this; }
242 
243     /**
244      * <p>A list of parameters specific to a particular cache node type. Each element
245      * in the list contains detailed information about one parameter.</p>
246      */
AddCacheNodeTypeSpecificParameters(CacheNodeTypeSpecificParameter && value)247     inline EngineDefaults& AddCacheNodeTypeSpecificParameters(CacheNodeTypeSpecificParameter&& value) { m_cacheNodeTypeSpecificParametersHasBeenSet = true; m_cacheNodeTypeSpecificParameters.push_back(std::move(value)); return *this; }
248 
249   private:
250 
251     Aws::String m_cacheParameterGroupFamily;
252     bool m_cacheParameterGroupFamilyHasBeenSet;
253 
254     Aws::String m_marker;
255     bool m_markerHasBeenSet;
256 
257     Aws::Vector<Parameter> m_parameters;
258     bool m_parametersHasBeenSet;
259 
260     Aws::Vector<CacheNodeTypeSpecificParameter> m_cacheNodeTypeSpecificParameters;
261     bool m_cacheNodeTypeSpecificParametersHasBeenSet;
262   };
263 
264 } // namespace Model
265 } // namespace ElastiCache
266 } // namespace Aws
267