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/AWSMap.h>
9 #include <aws/ce/model/SavingsPlansCoverageData.h>
10 #include <aws/ce/model/DateInterval.h>
11 #include <aws/core/utils/memory/stl/AWSString.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace CostExplorer
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>The amount of Savings Plans eligible usage that is covered by Savings Plans.
31    * All calculations consider the On-Demand equivalent of your Savings Plans
32    * usage.</p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/SavingsPlansCoverage">AWS
34    * API Reference</a></p>
35    */
36   class AWS_COSTEXPLORER_API SavingsPlansCoverage
37   {
38   public:
39     SavingsPlansCoverage();
40     SavingsPlansCoverage(Aws::Utils::Json::JsonView jsonValue);
41     SavingsPlansCoverage& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
47      */
GetAttributes()48     inline const Aws::Map<Aws::String, Aws::String>& GetAttributes() const{ return m_attributes; }
49 
50     /**
51      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
52      */
AttributesHasBeenSet()53     inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; }
54 
55     /**
56      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
57      */
SetAttributes(const Aws::Map<Aws::String,Aws::String> & value)58     inline void SetAttributes(const Aws::Map<Aws::String, Aws::String>& value) { m_attributesHasBeenSet = true; m_attributes = value; }
59 
60     /**
61      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
62      */
SetAttributes(Aws::Map<Aws::String,Aws::String> && value)63     inline void SetAttributes(Aws::Map<Aws::String, Aws::String>&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); }
64 
65     /**
66      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
67      */
WithAttributes(const Aws::Map<Aws::String,Aws::String> & value)68     inline SavingsPlansCoverage& WithAttributes(const Aws::Map<Aws::String, Aws::String>& value) { SetAttributes(value); return *this;}
69 
70     /**
71      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
72      */
WithAttributes(Aws::Map<Aws::String,Aws::String> && value)73     inline SavingsPlansCoverage& WithAttributes(Aws::Map<Aws::String, Aws::String>&& value) { SetAttributes(std::move(value)); return *this;}
74 
75     /**
76      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
77      */
AddAttributes(const Aws::String & key,const Aws::String & value)78     inline SavingsPlansCoverage& AddAttributes(const Aws::String& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; }
79 
80     /**
81      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
82      */
AddAttributes(Aws::String && key,const Aws::String & value)83     inline SavingsPlansCoverage& AddAttributes(Aws::String&& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; }
84 
85     /**
86      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
87      */
AddAttributes(const Aws::String & key,Aws::String && value)88     inline SavingsPlansCoverage& AddAttributes(const Aws::String& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; }
89 
90     /**
91      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
92      */
AddAttributes(Aws::String && key,Aws::String && value)93     inline SavingsPlansCoverage& AddAttributes(Aws::String&& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), std::move(value)); return *this; }
94 
95     /**
96      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
97      */
AddAttributes(const char * key,Aws::String && value)98     inline SavingsPlansCoverage& AddAttributes(const char* key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; }
99 
100     /**
101      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
102      */
AddAttributes(Aws::String && key,const char * value)103     inline SavingsPlansCoverage& AddAttributes(Aws::String&& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; }
104 
105     /**
106      * <p>The attribute that applies to a specific <code>Dimension</code>.</p>
107      */
AddAttributes(const char * key,const char * value)108     inline SavingsPlansCoverage& AddAttributes(const char* key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; }
109 
110 
111     /**
112      * <p>The amount of Savings Plans eligible usage that the Savings Plans
113      * covered.</p>
114      */
GetCoverage()115     inline const SavingsPlansCoverageData& GetCoverage() const{ return m_coverage; }
116 
117     /**
118      * <p>The amount of Savings Plans eligible usage that the Savings Plans
119      * covered.</p>
120      */
CoverageHasBeenSet()121     inline bool CoverageHasBeenSet() const { return m_coverageHasBeenSet; }
122 
123     /**
124      * <p>The amount of Savings Plans eligible usage that the Savings Plans
125      * covered.</p>
126      */
SetCoverage(const SavingsPlansCoverageData & value)127     inline void SetCoverage(const SavingsPlansCoverageData& value) { m_coverageHasBeenSet = true; m_coverage = value; }
128 
129     /**
130      * <p>The amount of Savings Plans eligible usage that the Savings Plans
131      * covered.</p>
132      */
SetCoverage(SavingsPlansCoverageData && value)133     inline void SetCoverage(SavingsPlansCoverageData&& value) { m_coverageHasBeenSet = true; m_coverage = std::move(value); }
134 
135     /**
136      * <p>The amount of Savings Plans eligible usage that the Savings Plans
137      * covered.</p>
138      */
WithCoverage(const SavingsPlansCoverageData & value)139     inline SavingsPlansCoverage& WithCoverage(const SavingsPlansCoverageData& value) { SetCoverage(value); return *this;}
140 
141     /**
142      * <p>The amount of Savings Plans eligible usage that the Savings Plans
143      * covered.</p>
144      */
WithCoverage(SavingsPlansCoverageData && value)145     inline SavingsPlansCoverage& WithCoverage(SavingsPlansCoverageData&& value) { SetCoverage(std::move(value)); return *this;}
146 
147 
148 
GetTimePeriod()149     inline const DateInterval& GetTimePeriod() const{ return m_timePeriod; }
150 
151 
TimePeriodHasBeenSet()152     inline bool TimePeriodHasBeenSet() const { return m_timePeriodHasBeenSet; }
153 
154 
SetTimePeriod(const DateInterval & value)155     inline void SetTimePeriod(const DateInterval& value) { m_timePeriodHasBeenSet = true; m_timePeriod = value; }
156 
157 
SetTimePeriod(DateInterval && value)158     inline void SetTimePeriod(DateInterval&& value) { m_timePeriodHasBeenSet = true; m_timePeriod = std::move(value); }
159 
160 
WithTimePeriod(const DateInterval & value)161     inline SavingsPlansCoverage& WithTimePeriod(const DateInterval& value) { SetTimePeriod(value); return *this;}
162 
163 
WithTimePeriod(DateInterval && value)164     inline SavingsPlansCoverage& WithTimePeriod(DateInterval&& value) { SetTimePeriod(std::move(value)); return *this;}
165 
166   private:
167 
168     Aws::Map<Aws::String, Aws::String> m_attributes;
169     bool m_attributesHasBeenSet;
170 
171     SavingsPlansCoverageData m_coverage;
172     bool m_coverageHasBeenSet;
173 
174     DateInterval m_timePeriod;
175     bool m_timePeriodHasBeenSet;
176   };
177 
178 } // namespace Model
179 } // namespace CostExplorer
180 } // namespace Aws
181