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/rds/RDS_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Xml
17 {
18   class XmlNode;
19 } // namespace Xml
20 } // namespace Utils
21 namespace RDS
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Option settings are the actual settings being applied or configured for that
28    * option. It is used when you modify an option group or describe option groups.
29    * For example, the NATIVE_NETWORK_ENCRYPTION option has a setting called
30    * SQLNET.ENCRYPTION_SERVER that can have several different values.</p><p><h3>See
31    * Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionSetting">AWS
33    * API Reference</a></p>
34    */
35   class AWS_RDS_API OptionSetting
36   {
37   public:
38     OptionSetting();
39     OptionSetting(const Aws::Utils::Xml::XmlNode& xmlNode);
40     OptionSetting& 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>The name of the option that has settings that you can set.</p>
48      */
GetName()49     inline const Aws::String& GetName() const{ return m_name; }
50 
51     /**
52      * <p>The name of the option that has settings that you can set.</p>
53      */
NameHasBeenSet()54     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
55 
56     /**
57      * <p>The name of the option that has settings that you can set.</p>
58      */
SetName(const Aws::String & value)59     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
60 
61     /**
62      * <p>The name of the option that has settings that you can set.</p>
63      */
SetName(Aws::String && value)64     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
65 
66     /**
67      * <p>The name of the option that has settings that you can set.</p>
68      */
SetName(const char * value)69     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
70 
71     /**
72      * <p>The name of the option that has settings that you can set.</p>
73      */
WithName(const Aws::String & value)74     inline OptionSetting& WithName(const Aws::String& value) { SetName(value); return *this;}
75 
76     /**
77      * <p>The name of the option that has settings that you can set.</p>
78      */
WithName(Aws::String && value)79     inline OptionSetting& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
80 
81     /**
82      * <p>The name of the option that has settings that you can set.</p>
83      */
WithName(const char * value)84     inline OptionSetting& WithName(const char* value) { SetName(value); return *this;}
85 
86 
87     /**
88      * <p>The current value of the option setting.</p>
89      */
GetValue()90     inline const Aws::String& GetValue() const{ return m_value; }
91 
92     /**
93      * <p>The current value of the option setting.</p>
94      */
ValueHasBeenSet()95     inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; }
96 
97     /**
98      * <p>The current value of the option setting.</p>
99      */
SetValue(const Aws::String & value)100     inline void SetValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value = value; }
101 
102     /**
103      * <p>The current value of the option setting.</p>
104      */
SetValue(Aws::String && value)105     inline void SetValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value = std::move(value); }
106 
107     /**
108      * <p>The current value of the option setting.</p>
109      */
SetValue(const char * value)110     inline void SetValue(const char* value) { m_valueHasBeenSet = true; m_value.assign(value); }
111 
112     /**
113      * <p>The current value of the option setting.</p>
114      */
WithValue(const Aws::String & value)115     inline OptionSetting& WithValue(const Aws::String& value) { SetValue(value); return *this;}
116 
117     /**
118      * <p>The current value of the option setting.</p>
119      */
WithValue(Aws::String && value)120     inline OptionSetting& WithValue(Aws::String&& value) { SetValue(std::move(value)); return *this;}
121 
122     /**
123      * <p>The current value of the option setting.</p>
124      */
WithValue(const char * value)125     inline OptionSetting& WithValue(const char* value) { SetValue(value); return *this;}
126 
127 
128     /**
129      * <p>The default value of the option setting.</p>
130      */
GetDefaultValue()131     inline const Aws::String& GetDefaultValue() const{ return m_defaultValue; }
132 
133     /**
134      * <p>The default value of the option setting.</p>
135      */
DefaultValueHasBeenSet()136     inline bool DefaultValueHasBeenSet() const { return m_defaultValueHasBeenSet; }
137 
138     /**
139      * <p>The default value of the option setting.</p>
140      */
SetDefaultValue(const Aws::String & value)141     inline void SetDefaultValue(const Aws::String& value) { m_defaultValueHasBeenSet = true; m_defaultValue = value; }
142 
143     /**
144      * <p>The default value of the option setting.</p>
145      */
SetDefaultValue(Aws::String && value)146     inline void SetDefaultValue(Aws::String&& value) { m_defaultValueHasBeenSet = true; m_defaultValue = std::move(value); }
147 
148     /**
149      * <p>The default value of the option setting.</p>
150      */
SetDefaultValue(const char * value)151     inline void SetDefaultValue(const char* value) { m_defaultValueHasBeenSet = true; m_defaultValue.assign(value); }
152 
153     /**
154      * <p>The default value of the option setting.</p>
155      */
WithDefaultValue(const Aws::String & value)156     inline OptionSetting& WithDefaultValue(const Aws::String& value) { SetDefaultValue(value); return *this;}
157 
158     /**
159      * <p>The default value of the option setting.</p>
160      */
WithDefaultValue(Aws::String && value)161     inline OptionSetting& WithDefaultValue(Aws::String&& value) { SetDefaultValue(std::move(value)); return *this;}
162 
163     /**
164      * <p>The default value of the option setting.</p>
165      */
WithDefaultValue(const char * value)166     inline OptionSetting& WithDefaultValue(const char* value) { SetDefaultValue(value); return *this;}
167 
168 
169     /**
170      * <p>The description of the option setting.</p>
171      */
GetDescription()172     inline const Aws::String& GetDescription() const{ return m_description; }
173 
174     /**
175      * <p>The description of the option setting.</p>
176      */
DescriptionHasBeenSet()177     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
178 
179     /**
180      * <p>The description of the option setting.</p>
181      */
SetDescription(const Aws::String & value)182     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
183 
184     /**
185      * <p>The description of the option setting.</p>
186      */
SetDescription(Aws::String && value)187     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
188 
189     /**
190      * <p>The description of the option setting.</p>
191      */
SetDescription(const char * value)192     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
193 
194     /**
195      * <p>The description of the option setting.</p>
196      */
WithDescription(const Aws::String & value)197     inline OptionSetting& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
198 
199     /**
200      * <p>The description of the option setting.</p>
201      */
WithDescription(Aws::String && value)202     inline OptionSetting& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
203 
204     /**
205      * <p>The description of the option setting.</p>
206      */
WithDescription(const char * value)207     inline OptionSetting& WithDescription(const char* value) { SetDescription(value); return *this;}
208 
209 
210     /**
211      * <p>The DB engine specific parameter type.</p>
212      */
GetApplyType()213     inline const Aws::String& GetApplyType() const{ return m_applyType; }
214 
215     /**
216      * <p>The DB engine specific parameter type.</p>
217      */
ApplyTypeHasBeenSet()218     inline bool ApplyTypeHasBeenSet() const { return m_applyTypeHasBeenSet; }
219 
220     /**
221      * <p>The DB engine specific parameter type.</p>
222      */
SetApplyType(const Aws::String & value)223     inline void SetApplyType(const Aws::String& value) { m_applyTypeHasBeenSet = true; m_applyType = value; }
224 
225     /**
226      * <p>The DB engine specific parameter type.</p>
227      */
SetApplyType(Aws::String && value)228     inline void SetApplyType(Aws::String&& value) { m_applyTypeHasBeenSet = true; m_applyType = std::move(value); }
229 
230     /**
231      * <p>The DB engine specific parameter type.</p>
232      */
SetApplyType(const char * value)233     inline void SetApplyType(const char* value) { m_applyTypeHasBeenSet = true; m_applyType.assign(value); }
234 
235     /**
236      * <p>The DB engine specific parameter type.</p>
237      */
WithApplyType(const Aws::String & value)238     inline OptionSetting& WithApplyType(const Aws::String& value) { SetApplyType(value); return *this;}
239 
240     /**
241      * <p>The DB engine specific parameter type.</p>
242      */
WithApplyType(Aws::String && value)243     inline OptionSetting& WithApplyType(Aws::String&& value) { SetApplyType(std::move(value)); return *this;}
244 
245     /**
246      * <p>The DB engine specific parameter type.</p>
247      */
WithApplyType(const char * value)248     inline OptionSetting& WithApplyType(const char* value) { SetApplyType(value); return *this;}
249 
250 
251     /**
252      * <p>The data type of the option setting.</p>
253      */
GetDataType()254     inline const Aws::String& GetDataType() const{ return m_dataType; }
255 
256     /**
257      * <p>The data type of the option setting.</p>
258      */
DataTypeHasBeenSet()259     inline bool DataTypeHasBeenSet() const { return m_dataTypeHasBeenSet; }
260 
261     /**
262      * <p>The data type of the option setting.</p>
263      */
SetDataType(const Aws::String & value)264     inline void SetDataType(const Aws::String& value) { m_dataTypeHasBeenSet = true; m_dataType = value; }
265 
266     /**
267      * <p>The data type of the option setting.</p>
268      */
SetDataType(Aws::String && value)269     inline void SetDataType(Aws::String&& value) { m_dataTypeHasBeenSet = true; m_dataType = std::move(value); }
270 
271     /**
272      * <p>The data type of the option setting.</p>
273      */
SetDataType(const char * value)274     inline void SetDataType(const char* value) { m_dataTypeHasBeenSet = true; m_dataType.assign(value); }
275 
276     /**
277      * <p>The data type of the option setting.</p>
278      */
WithDataType(const Aws::String & value)279     inline OptionSetting& WithDataType(const Aws::String& value) { SetDataType(value); return *this;}
280 
281     /**
282      * <p>The data type of the option setting.</p>
283      */
WithDataType(Aws::String && value)284     inline OptionSetting& WithDataType(Aws::String&& value) { SetDataType(std::move(value)); return *this;}
285 
286     /**
287      * <p>The data type of the option setting.</p>
288      */
WithDataType(const char * value)289     inline OptionSetting& WithDataType(const char* value) { SetDataType(value); return *this;}
290 
291 
292     /**
293      * <p>The allowed values of the option setting.</p>
294      */
GetAllowedValues()295     inline const Aws::String& GetAllowedValues() const{ return m_allowedValues; }
296 
297     /**
298      * <p>The allowed values of the option setting.</p>
299      */
AllowedValuesHasBeenSet()300     inline bool AllowedValuesHasBeenSet() const { return m_allowedValuesHasBeenSet; }
301 
302     /**
303      * <p>The allowed values of the option setting.</p>
304      */
SetAllowedValues(const Aws::String & value)305     inline void SetAllowedValues(const Aws::String& value) { m_allowedValuesHasBeenSet = true; m_allowedValues = value; }
306 
307     /**
308      * <p>The allowed values of the option setting.</p>
309      */
SetAllowedValues(Aws::String && value)310     inline void SetAllowedValues(Aws::String&& value) { m_allowedValuesHasBeenSet = true; m_allowedValues = std::move(value); }
311 
312     /**
313      * <p>The allowed values of the option setting.</p>
314      */
SetAllowedValues(const char * value)315     inline void SetAllowedValues(const char* value) { m_allowedValuesHasBeenSet = true; m_allowedValues.assign(value); }
316 
317     /**
318      * <p>The allowed values of the option setting.</p>
319      */
WithAllowedValues(const Aws::String & value)320     inline OptionSetting& WithAllowedValues(const Aws::String& value) { SetAllowedValues(value); return *this;}
321 
322     /**
323      * <p>The allowed values of the option setting.</p>
324      */
WithAllowedValues(Aws::String && value)325     inline OptionSetting& WithAllowedValues(Aws::String&& value) { SetAllowedValues(std::move(value)); return *this;}
326 
327     /**
328      * <p>The allowed values of the option setting.</p>
329      */
WithAllowedValues(const char * value)330     inline OptionSetting& WithAllowedValues(const char* value) { SetAllowedValues(value); return *this;}
331 
332 
333     /**
334      * <p>A Boolean value that, when true, indicates the option setting can be modified
335      * from the default.</p>
336      */
GetIsModifiable()337     inline bool GetIsModifiable() const{ return m_isModifiable; }
338 
339     /**
340      * <p>A Boolean value that, when true, indicates the option setting can be modified
341      * from the default.</p>
342      */
IsModifiableHasBeenSet()343     inline bool IsModifiableHasBeenSet() const { return m_isModifiableHasBeenSet; }
344 
345     /**
346      * <p>A Boolean value that, when true, indicates the option setting can be modified
347      * from the default.</p>
348      */
SetIsModifiable(bool value)349     inline void SetIsModifiable(bool value) { m_isModifiableHasBeenSet = true; m_isModifiable = value; }
350 
351     /**
352      * <p>A Boolean value that, when true, indicates the option setting can be modified
353      * from the default.</p>
354      */
WithIsModifiable(bool value)355     inline OptionSetting& WithIsModifiable(bool value) { SetIsModifiable(value); return *this;}
356 
357 
358     /**
359      * <p>Indicates if the option setting is part of a collection.</p>
360      */
GetIsCollection()361     inline bool GetIsCollection() const{ return m_isCollection; }
362 
363     /**
364      * <p>Indicates if the option setting is part of a collection.</p>
365      */
IsCollectionHasBeenSet()366     inline bool IsCollectionHasBeenSet() const { return m_isCollectionHasBeenSet; }
367 
368     /**
369      * <p>Indicates if the option setting is part of a collection.</p>
370      */
SetIsCollection(bool value)371     inline void SetIsCollection(bool value) { m_isCollectionHasBeenSet = true; m_isCollection = value; }
372 
373     /**
374      * <p>Indicates if the option setting is part of a collection.</p>
375      */
WithIsCollection(bool value)376     inline OptionSetting& WithIsCollection(bool value) { SetIsCollection(value); return *this;}
377 
378   private:
379 
380     Aws::String m_name;
381     bool m_nameHasBeenSet;
382 
383     Aws::String m_value;
384     bool m_valueHasBeenSet;
385 
386     Aws::String m_defaultValue;
387     bool m_defaultValueHasBeenSet;
388 
389     Aws::String m_description;
390     bool m_descriptionHasBeenSet;
391 
392     Aws::String m_applyType;
393     bool m_applyTypeHasBeenSet;
394 
395     Aws::String m_dataType;
396     bool m_dataTypeHasBeenSet;
397 
398     Aws::String m_allowedValues;
399     bool m_allowedValuesHasBeenSet;
400 
401     bool m_isModifiable;
402     bool m_isModifiableHasBeenSet;
403 
404     bool m_isCollection;
405     bool m_isCollectionHasBeenSet;
406   };
407 
408 } // namespace Model
409 } // namespace RDS
410 } // namespace Aws
411