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/ce/CostExplorer_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace CostExplorer
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Details about the Amazon ElastiCache instances that Amazon Web Services
28    * recommends that you purchase.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ElastiCacheInstanceDetails">AWS
30    * API Reference</a></p>
31    */
32   class AWS_COSTEXPLORER_API ElastiCacheInstanceDetails
33   {
34   public:
35     ElastiCacheInstanceDetails();
36     ElastiCacheInstanceDetails(Aws::Utils::Json::JsonView jsonValue);
37     ElastiCacheInstanceDetails& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The instance family of the recommended reservation.</p>
43      */
GetFamily()44     inline const Aws::String& GetFamily() const{ return m_family; }
45 
46     /**
47      * <p>The instance family of the recommended reservation.</p>
48      */
FamilyHasBeenSet()49     inline bool FamilyHasBeenSet() const { return m_familyHasBeenSet; }
50 
51     /**
52      * <p>The instance family of the recommended reservation.</p>
53      */
SetFamily(const Aws::String & value)54     inline void SetFamily(const Aws::String& value) { m_familyHasBeenSet = true; m_family = value; }
55 
56     /**
57      * <p>The instance family of the recommended reservation.</p>
58      */
SetFamily(Aws::String && value)59     inline void SetFamily(Aws::String&& value) { m_familyHasBeenSet = true; m_family = std::move(value); }
60 
61     /**
62      * <p>The instance family of the recommended reservation.</p>
63      */
SetFamily(const char * value)64     inline void SetFamily(const char* value) { m_familyHasBeenSet = true; m_family.assign(value); }
65 
66     /**
67      * <p>The instance family of the recommended reservation.</p>
68      */
WithFamily(const Aws::String & value)69     inline ElastiCacheInstanceDetails& WithFamily(const Aws::String& value) { SetFamily(value); return *this;}
70 
71     /**
72      * <p>The instance family of the recommended reservation.</p>
73      */
WithFamily(Aws::String && value)74     inline ElastiCacheInstanceDetails& WithFamily(Aws::String&& value) { SetFamily(std::move(value)); return *this;}
75 
76     /**
77      * <p>The instance family of the recommended reservation.</p>
78      */
WithFamily(const char * value)79     inline ElastiCacheInstanceDetails& WithFamily(const char* value) { SetFamily(value); return *this;}
80 
81 
82     /**
83      * <p>The type of node that Amazon Web Services recommends.</p>
84      */
GetNodeType()85     inline const Aws::String& GetNodeType() const{ return m_nodeType; }
86 
87     /**
88      * <p>The type of node that Amazon Web Services recommends.</p>
89      */
NodeTypeHasBeenSet()90     inline bool NodeTypeHasBeenSet() const { return m_nodeTypeHasBeenSet; }
91 
92     /**
93      * <p>The type of node that Amazon Web Services recommends.</p>
94      */
SetNodeType(const Aws::String & value)95     inline void SetNodeType(const Aws::String& value) { m_nodeTypeHasBeenSet = true; m_nodeType = value; }
96 
97     /**
98      * <p>The type of node that Amazon Web Services recommends.</p>
99      */
SetNodeType(Aws::String && value)100     inline void SetNodeType(Aws::String&& value) { m_nodeTypeHasBeenSet = true; m_nodeType = std::move(value); }
101 
102     /**
103      * <p>The type of node that Amazon Web Services recommends.</p>
104      */
SetNodeType(const char * value)105     inline void SetNodeType(const char* value) { m_nodeTypeHasBeenSet = true; m_nodeType.assign(value); }
106 
107     /**
108      * <p>The type of node that Amazon Web Services recommends.</p>
109      */
WithNodeType(const Aws::String & value)110     inline ElastiCacheInstanceDetails& WithNodeType(const Aws::String& value) { SetNodeType(value); return *this;}
111 
112     /**
113      * <p>The type of node that Amazon Web Services recommends.</p>
114      */
WithNodeType(Aws::String && value)115     inline ElastiCacheInstanceDetails& WithNodeType(Aws::String&& value) { SetNodeType(std::move(value)); return *this;}
116 
117     /**
118      * <p>The type of node that Amazon Web Services recommends.</p>
119      */
WithNodeType(const char * value)120     inline ElastiCacheInstanceDetails& WithNodeType(const char* value) { SetNodeType(value); return *this;}
121 
122 
123     /**
124      * <p>The Amazon Web Services Region of the recommended reservation.</p>
125      */
GetRegion()126     inline const Aws::String& GetRegion() const{ return m_region; }
127 
128     /**
129      * <p>The Amazon Web Services Region of the recommended reservation.</p>
130      */
RegionHasBeenSet()131     inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; }
132 
133     /**
134      * <p>The Amazon Web Services Region of the recommended reservation.</p>
135      */
SetRegion(const Aws::String & value)136     inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; }
137 
138     /**
139      * <p>The Amazon Web Services Region of the recommended reservation.</p>
140      */
SetRegion(Aws::String && value)141     inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); }
142 
143     /**
144      * <p>The Amazon Web Services Region of the recommended reservation.</p>
145      */
SetRegion(const char * value)146     inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); }
147 
148     /**
149      * <p>The Amazon Web Services Region of the recommended reservation.</p>
150      */
WithRegion(const Aws::String & value)151     inline ElastiCacheInstanceDetails& WithRegion(const Aws::String& value) { SetRegion(value); return *this;}
152 
153     /**
154      * <p>The Amazon Web Services Region of the recommended reservation.</p>
155      */
WithRegion(Aws::String && value)156     inline ElastiCacheInstanceDetails& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;}
157 
158     /**
159      * <p>The Amazon Web Services Region of the recommended reservation.</p>
160      */
WithRegion(const char * value)161     inline ElastiCacheInstanceDetails& WithRegion(const char* value) { SetRegion(value); return *this;}
162 
163 
164     /**
165      * <p>The description of the recommended reservation.</p>
166      */
GetProductDescription()167     inline const Aws::String& GetProductDescription() const{ return m_productDescription; }
168 
169     /**
170      * <p>The description of the recommended reservation.</p>
171      */
ProductDescriptionHasBeenSet()172     inline bool ProductDescriptionHasBeenSet() const { return m_productDescriptionHasBeenSet; }
173 
174     /**
175      * <p>The description of the recommended reservation.</p>
176      */
SetProductDescription(const Aws::String & value)177     inline void SetProductDescription(const Aws::String& value) { m_productDescriptionHasBeenSet = true; m_productDescription = value; }
178 
179     /**
180      * <p>The description of the recommended reservation.</p>
181      */
SetProductDescription(Aws::String && value)182     inline void SetProductDescription(Aws::String&& value) { m_productDescriptionHasBeenSet = true; m_productDescription = std::move(value); }
183 
184     /**
185      * <p>The description of the recommended reservation.</p>
186      */
SetProductDescription(const char * value)187     inline void SetProductDescription(const char* value) { m_productDescriptionHasBeenSet = true; m_productDescription.assign(value); }
188 
189     /**
190      * <p>The description of the recommended reservation.</p>
191      */
WithProductDescription(const Aws::String & value)192     inline ElastiCacheInstanceDetails& WithProductDescription(const Aws::String& value) { SetProductDescription(value); return *this;}
193 
194     /**
195      * <p>The description of the recommended reservation.</p>
196      */
WithProductDescription(Aws::String && value)197     inline ElastiCacheInstanceDetails& WithProductDescription(Aws::String&& value) { SetProductDescription(std::move(value)); return *this;}
198 
199     /**
200      * <p>The description of the recommended reservation.</p>
201      */
WithProductDescription(const char * value)202     inline ElastiCacheInstanceDetails& WithProductDescription(const char* value) { SetProductDescription(value); return *this;}
203 
204 
205     /**
206      * <p>Determines whether the recommendation is for a current generation
207      * instance.</p>
208      */
GetCurrentGeneration()209     inline bool GetCurrentGeneration() const{ return m_currentGeneration; }
210 
211     /**
212      * <p>Determines whether the recommendation is for a current generation
213      * instance.</p>
214      */
CurrentGenerationHasBeenSet()215     inline bool CurrentGenerationHasBeenSet() const { return m_currentGenerationHasBeenSet; }
216 
217     /**
218      * <p>Determines whether the recommendation is for a current generation
219      * instance.</p>
220      */
SetCurrentGeneration(bool value)221     inline void SetCurrentGeneration(bool value) { m_currentGenerationHasBeenSet = true; m_currentGeneration = value; }
222 
223     /**
224      * <p>Determines whether the recommendation is for a current generation
225      * instance.</p>
226      */
WithCurrentGeneration(bool value)227     inline ElastiCacheInstanceDetails& WithCurrentGeneration(bool value) { SetCurrentGeneration(value); return *this;}
228 
229 
230     /**
231      * <p>Determines whether the recommended reservation is size flexible.</p>
232      */
GetSizeFlexEligible()233     inline bool GetSizeFlexEligible() const{ return m_sizeFlexEligible; }
234 
235     /**
236      * <p>Determines whether the recommended reservation is size flexible.</p>
237      */
SizeFlexEligibleHasBeenSet()238     inline bool SizeFlexEligibleHasBeenSet() const { return m_sizeFlexEligibleHasBeenSet; }
239 
240     /**
241      * <p>Determines whether the recommended reservation is size flexible.</p>
242      */
SetSizeFlexEligible(bool value)243     inline void SetSizeFlexEligible(bool value) { m_sizeFlexEligibleHasBeenSet = true; m_sizeFlexEligible = value; }
244 
245     /**
246      * <p>Determines whether the recommended reservation is size flexible.</p>
247      */
WithSizeFlexEligible(bool value)248     inline ElastiCacheInstanceDetails& WithSizeFlexEligible(bool value) { SetSizeFlexEligible(value); return *this;}
249 
250   private:
251 
252     Aws::String m_family;
253     bool m_familyHasBeenSet;
254 
255     Aws::String m_nodeType;
256     bool m_nodeTypeHasBeenSet;
257 
258     Aws::String m_region;
259     bool m_regionHasBeenSet;
260 
261     Aws::String m_productDescription;
262     bool m_productDescriptionHasBeenSet;
263 
264     bool m_currentGeneration;
265     bool m_currentGenerationHasBeenSet;
266 
267     bool m_sizeFlexEligible;
268     bool m_sizeFlexEligibleHasBeenSet;
269   };
270 
271 } // namespace Model
272 } // namespace CostExplorer
273 } // namespace Aws
274