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 <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 ElastiCache
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Contains the specific price and frequency of a recurring charges for a
28    * reserved cache node, or for a reserved cache node offering.</p><p><h3>See
29    * Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/RecurringCharge">AWS
31    * API Reference</a></p>
32    */
33   class AWS_ELASTICACHE_API RecurringCharge
34   {
35   public:
36     RecurringCharge();
37     RecurringCharge(const Aws::Utils::Xml::XmlNode& xmlNode);
38     RecurringCharge& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
39 
40     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
41     void OutputToStream(Aws::OStream& oStream, const char* location) const;
42 
43 
44     /**
45      * <p>The monetary amount of the recurring charge.</p>
46      */
GetRecurringChargeAmount()47     inline double GetRecurringChargeAmount() const{ return m_recurringChargeAmount; }
48 
49     /**
50      * <p>The monetary amount of the recurring charge.</p>
51      */
RecurringChargeAmountHasBeenSet()52     inline bool RecurringChargeAmountHasBeenSet() const { return m_recurringChargeAmountHasBeenSet; }
53 
54     /**
55      * <p>The monetary amount of the recurring charge.</p>
56      */
SetRecurringChargeAmount(double value)57     inline void SetRecurringChargeAmount(double value) { m_recurringChargeAmountHasBeenSet = true; m_recurringChargeAmount = value; }
58 
59     /**
60      * <p>The monetary amount of the recurring charge.</p>
61      */
WithRecurringChargeAmount(double value)62     inline RecurringCharge& WithRecurringChargeAmount(double value) { SetRecurringChargeAmount(value); return *this;}
63 
64 
65     /**
66      * <p>The frequency of the recurring charge.</p>
67      */
GetRecurringChargeFrequency()68     inline const Aws::String& GetRecurringChargeFrequency() const{ return m_recurringChargeFrequency; }
69 
70     /**
71      * <p>The frequency of the recurring charge.</p>
72      */
RecurringChargeFrequencyHasBeenSet()73     inline bool RecurringChargeFrequencyHasBeenSet() const { return m_recurringChargeFrequencyHasBeenSet; }
74 
75     /**
76      * <p>The frequency of the recurring charge.</p>
77      */
SetRecurringChargeFrequency(const Aws::String & value)78     inline void SetRecurringChargeFrequency(const Aws::String& value) { m_recurringChargeFrequencyHasBeenSet = true; m_recurringChargeFrequency = value; }
79 
80     /**
81      * <p>The frequency of the recurring charge.</p>
82      */
SetRecurringChargeFrequency(Aws::String && value)83     inline void SetRecurringChargeFrequency(Aws::String&& value) { m_recurringChargeFrequencyHasBeenSet = true; m_recurringChargeFrequency = std::move(value); }
84 
85     /**
86      * <p>The frequency of the recurring charge.</p>
87      */
SetRecurringChargeFrequency(const char * value)88     inline void SetRecurringChargeFrequency(const char* value) { m_recurringChargeFrequencyHasBeenSet = true; m_recurringChargeFrequency.assign(value); }
89 
90     /**
91      * <p>The frequency of the recurring charge.</p>
92      */
WithRecurringChargeFrequency(const Aws::String & value)93     inline RecurringCharge& WithRecurringChargeFrequency(const Aws::String& value) { SetRecurringChargeFrequency(value); return *this;}
94 
95     /**
96      * <p>The frequency of the recurring charge.</p>
97      */
WithRecurringChargeFrequency(Aws::String && value)98     inline RecurringCharge& WithRecurringChargeFrequency(Aws::String&& value) { SetRecurringChargeFrequency(std::move(value)); return *this;}
99 
100     /**
101      * <p>The frequency of the recurring charge.</p>
102      */
WithRecurringChargeFrequency(const char * value)103     inline RecurringCharge& WithRecurringChargeFrequency(const char* value) { SetRecurringChargeFrequency(value); return *this;}
104 
105   private:
106 
107     double m_recurringChargeAmount;
108     bool m_recurringChargeAmountHasBeenSet;
109 
110     Aws::String m_recurringChargeFrequency;
111     bool m_recurringChargeFrequencyHasBeenSet;
112   };
113 
114 } // namespace Model
115 } // namespace ElastiCache
116 } // namespace Aws
117