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/lightsail/Lightsail_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 Lightsail
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Describes the powers that can be specified for an Amazon Lightsail container
28    * service.</p> <p>The power specifies the amount of RAM, the number of vCPUs, and
29    * the base price of the container service.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/ContainerServicePower">AWS
31    * API Reference</a></p>
32    */
33   class AWS_LIGHTSAIL_API ContainerServicePower
34   {
35   public:
36     ContainerServicePower();
37     ContainerServicePower(Aws::Utils::Json::JsonView jsonValue);
38     ContainerServicePower& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The ID of the power (e.g., <code>nano-1</code>).</p>
44      */
GetPowerId()45     inline const Aws::String& GetPowerId() const{ return m_powerId; }
46 
47     /**
48      * <p>The ID of the power (e.g., <code>nano-1</code>).</p>
49      */
PowerIdHasBeenSet()50     inline bool PowerIdHasBeenSet() const { return m_powerIdHasBeenSet; }
51 
52     /**
53      * <p>The ID of the power (e.g., <code>nano-1</code>).</p>
54      */
SetPowerId(const Aws::String & value)55     inline void SetPowerId(const Aws::String& value) { m_powerIdHasBeenSet = true; m_powerId = value; }
56 
57     /**
58      * <p>The ID of the power (e.g., <code>nano-1</code>).</p>
59      */
SetPowerId(Aws::String && value)60     inline void SetPowerId(Aws::String&& value) { m_powerIdHasBeenSet = true; m_powerId = std::move(value); }
61 
62     /**
63      * <p>The ID of the power (e.g., <code>nano-1</code>).</p>
64      */
SetPowerId(const char * value)65     inline void SetPowerId(const char* value) { m_powerIdHasBeenSet = true; m_powerId.assign(value); }
66 
67     /**
68      * <p>The ID of the power (e.g., <code>nano-1</code>).</p>
69      */
WithPowerId(const Aws::String & value)70     inline ContainerServicePower& WithPowerId(const Aws::String& value) { SetPowerId(value); return *this;}
71 
72     /**
73      * <p>The ID of the power (e.g., <code>nano-1</code>).</p>
74      */
WithPowerId(Aws::String && value)75     inline ContainerServicePower& WithPowerId(Aws::String&& value) { SetPowerId(std::move(value)); return *this;}
76 
77     /**
78      * <p>The ID of the power (e.g., <code>nano-1</code>).</p>
79      */
WithPowerId(const char * value)80     inline ContainerServicePower& WithPowerId(const char* value) { SetPowerId(value); return *this;}
81 
82 
83     /**
84      * <p>The monthly price of the power in USD.</p>
85      */
GetPrice()86     inline double GetPrice() const{ return m_price; }
87 
88     /**
89      * <p>The monthly price of the power in USD.</p>
90      */
PriceHasBeenSet()91     inline bool PriceHasBeenSet() const { return m_priceHasBeenSet; }
92 
93     /**
94      * <p>The monthly price of the power in USD.</p>
95      */
SetPrice(double value)96     inline void SetPrice(double value) { m_priceHasBeenSet = true; m_price = value; }
97 
98     /**
99      * <p>The monthly price of the power in USD.</p>
100      */
WithPrice(double value)101     inline ContainerServicePower& WithPrice(double value) { SetPrice(value); return *this;}
102 
103 
104     /**
105      * <p>The number of vCPUs included in the power.</p>
106      */
GetCpuCount()107     inline double GetCpuCount() const{ return m_cpuCount; }
108 
109     /**
110      * <p>The number of vCPUs included in the power.</p>
111      */
CpuCountHasBeenSet()112     inline bool CpuCountHasBeenSet() const { return m_cpuCountHasBeenSet; }
113 
114     /**
115      * <p>The number of vCPUs included in the power.</p>
116      */
SetCpuCount(double value)117     inline void SetCpuCount(double value) { m_cpuCountHasBeenSet = true; m_cpuCount = value; }
118 
119     /**
120      * <p>The number of vCPUs included in the power.</p>
121      */
WithCpuCount(double value)122     inline ContainerServicePower& WithCpuCount(double value) { SetCpuCount(value); return *this;}
123 
124 
125     /**
126      * <p>The amount of RAM (in GB) of the power.</p>
127      */
GetRamSizeInGb()128     inline double GetRamSizeInGb() const{ return m_ramSizeInGb; }
129 
130     /**
131      * <p>The amount of RAM (in GB) of the power.</p>
132      */
RamSizeInGbHasBeenSet()133     inline bool RamSizeInGbHasBeenSet() const { return m_ramSizeInGbHasBeenSet; }
134 
135     /**
136      * <p>The amount of RAM (in GB) of the power.</p>
137      */
SetRamSizeInGb(double value)138     inline void SetRamSizeInGb(double value) { m_ramSizeInGbHasBeenSet = true; m_ramSizeInGb = value; }
139 
140     /**
141      * <p>The amount of RAM (in GB) of the power.</p>
142      */
WithRamSizeInGb(double value)143     inline ContainerServicePower& WithRamSizeInGb(double value) { SetRamSizeInGb(value); return *this;}
144 
145 
146     /**
147      * <p>The friendly name of the power (e.g., <code>nano</code>).</p>
148      */
GetName()149     inline const Aws::String& GetName() const{ return m_name; }
150 
151     /**
152      * <p>The friendly name of the power (e.g., <code>nano</code>).</p>
153      */
NameHasBeenSet()154     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
155 
156     /**
157      * <p>The friendly name of the power (e.g., <code>nano</code>).</p>
158      */
SetName(const Aws::String & value)159     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
160 
161     /**
162      * <p>The friendly name of the power (e.g., <code>nano</code>).</p>
163      */
SetName(Aws::String && value)164     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
165 
166     /**
167      * <p>The friendly name of the power (e.g., <code>nano</code>).</p>
168      */
SetName(const char * value)169     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
170 
171     /**
172      * <p>The friendly name of the power (e.g., <code>nano</code>).</p>
173      */
WithName(const Aws::String & value)174     inline ContainerServicePower& WithName(const Aws::String& value) { SetName(value); return *this;}
175 
176     /**
177      * <p>The friendly name of the power (e.g., <code>nano</code>).</p>
178      */
WithName(Aws::String && value)179     inline ContainerServicePower& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
180 
181     /**
182      * <p>The friendly name of the power (e.g., <code>nano</code>).</p>
183      */
WithName(const char * value)184     inline ContainerServicePower& WithName(const char* value) { SetName(value); return *this;}
185 
186 
187     /**
188      * <p>A Boolean value indicating whether the power is active and can be specified
189      * for container services.</p>
190      */
GetIsActive()191     inline bool GetIsActive() const{ return m_isActive; }
192 
193     /**
194      * <p>A Boolean value indicating whether the power is active and can be specified
195      * for container services.</p>
196      */
IsActiveHasBeenSet()197     inline bool IsActiveHasBeenSet() const { return m_isActiveHasBeenSet; }
198 
199     /**
200      * <p>A Boolean value indicating whether the power is active and can be specified
201      * for container services.</p>
202      */
SetIsActive(bool value)203     inline void SetIsActive(bool value) { m_isActiveHasBeenSet = true; m_isActive = value; }
204 
205     /**
206      * <p>A Boolean value indicating whether the power is active and can be specified
207      * for container services.</p>
208      */
WithIsActive(bool value)209     inline ContainerServicePower& WithIsActive(bool value) { SetIsActive(value); return *this;}
210 
211   private:
212 
213     Aws::String m_powerId;
214     bool m_powerIdHasBeenSet;
215 
216     double m_price;
217     bool m_priceHasBeenSet;
218 
219     double m_cpuCount;
220     bool m_cpuCountHasBeenSet;
221 
222     double m_ramSizeInGb;
223     bool m_ramSizeInGbHasBeenSet;
224 
225     Aws::String m_name;
226     bool m_nameHasBeenSet;
227 
228     bool m_isActive;
229     bool m_isActiveHasBeenSet;
230   };
231 
232 } // namespace Model
233 } // namespace Lightsail
234 } // namespace Aws
235