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/medialive/MediaLive_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/medialive/model/OfferingDurationUnits.h>
10 #include <aws/medialive/model/OfferingType.h>
11 #include <aws/medialive/model/ReservationResourceSpecification.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 template<typename RESULT_TYPE>
17 class AmazonWebServiceResult;
18 
19 namespace Utils
20 {
21 namespace Json
22 {
23   class JsonValue;
24 } // namespace Json
25 } // namespace Utils
26 namespace MediaLive
27 {
28 namespace Model
29 {
30   /**
31    * Placeholder documentation for DescribeOfferingResponse<p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/DescribeOfferingResponse">AWS
33    * API Reference</a></p>
34    */
35   class AWS_MEDIALIVE_API DescribeOfferingResult
36   {
37   public:
38     DescribeOfferingResult();
39     DescribeOfferingResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
40     DescribeOfferingResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
41 
42 
43     /**
44      * Unique offering ARN, e.g.
45      * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'
46      */
GetArn()47     inline const Aws::String& GetArn() const{ return m_arn; }
48 
49     /**
50      * Unique offering ARN, e.g.
51      * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'
52      */
SetArn(const Aws::String & value)53     inline void SetArn(const Aws::String& value) { m_arn = value; }
54 
55     /**
56      * Unique offering ARN, e.g.
57      * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'
58      */
SetArn(Aws::String && value)59     inline void SetArn(Aws::String&& value) { m_arn = std::move(value); }
60 
61     /**
62      * Unique offering ARN, e.g.
63      * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'
64      */
SetArn(const char * value)65     inline void SetArn(const char* value) { m_arn.assign(value); }
66 
67     /**
68      * Unique offering ARN, e.g.
69      * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'
70      */
WithArn(const Aws::String & value)71     inline DescribeOfferingResult& WithArn(const Aws::String& value) { SetArn(value); return *this;}
72 
73     /**
74      * Unique offering ARN, e.g.
75      * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'
76      */
WithArn(Aws::String && value)77     inline DescribeOfferingResult& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
78 
79     /**
80      * Unique offering ARN, e.g.
81      * 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'
82      */
WithArn(const char * value)83     inline DescribeOfferingResult& WithArn(const char* value) { SetArn(value); return *this;}
84 
85 
86     /**
87      * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'
88      */
GetCurrencyCode()89     inline const Aws::String& GetCurrencyCode() const{ return m_currencyCode; }
90 
91     /**
92      * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'
93      */
SetCurrencyCode(const Aws::String & value)94     inline void SetCurrencyCode(const Aws::String& value) { m_currencyCode = value; }
95 
96     /**
97      * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'
98      */
SetCurrencyCode(Aws::String && value)99     inline void SetCurrencyCode(Aws::String&& value) { m_currencyCode = std::move(value); }
100 
101     /**
102      * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'
103      */
SetCurrencyCode(const char * value)104     inline void SetCurrencyCode(const char* value) { m_currencyCode.assign(value); }
105 
106     /**
107      * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'
108      */
WithCurrencyCode(const Aws::String & value)109     inline DescribeOfferingResult& WithCurrencyCode(const Aws::String& value) { SetCurrencyCode(value); return *this;}
110 
111     /**
112      * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'
113      */
WithCurrencyCode(Aws::String && value)114     inline DescribeOfferingResult& WithCurrencyCode(Aws::String&& value) { SetCurrencyCode(std::move(value)); return *this;}
115 
116     /**
117      * Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'
118      */
WithCurrencyCode(const char * value)119     inline DescribeOfferingResult& WithCurrencyCode(const char* value) { SetCurrencyCode(value); return *this;}
120 
121 
122     /**
123      * Lease duration, e.g. '12'
124      */
GetDuration()125     inline int GetDuration() const{ return m_duration; }
126 
127     /**
128      * Lease duration, e.g. '12'
129      */
SetDuration(int value)130     inline void SetDuration(int value) { m_duration = value; }
131 
132     /**
133      * Lease duration, e.g. '12'
134      */
WithDuration(int value)135     inline DescribeOfferingResult& WithDuration(int value) { SetDuration(value); return *this;}
136 
137 
138     /**
139      * Units for duration, e.g. 'MONTHS'
140      */
GetDurationUnits()141     inline const OfferingDurationUnits& GetDurationUnits() const{ return m_durationUnits; }
142 
143     /**
144      * Units for duration, e.g. 'MONTHS'
145      */
SetDurationUnits(const OfferingDurationUnits & value)146     inline void SetDurationUnits(const OfferingDurationUnits& value) { m_durationUnits = value; }
147 
148     /**
149      * Units for duration, e.g. 'MONTHS'
150      */
SetDurationUnits(OfferingDurationUnits && value)151     inline void SetDurationUnits(OfferingDurationUnits&& value) { m_durationUnits = std::move(value); }
152 
153     /**
154      * Units for duration, e.g. 'MONTHS'
155      */
WithDurationUnits(const OfferingDurationUnits & value)156     inline DescribeOfferingResult& WithDurationUnits(const OfferingDurationUnits& value) { SetDurationUnits(value); return *this;}
157 
158     /**
159      * Units for duration, e.g. 'MONTHS'
160      */
WithDurationUnits(OfferingDurationUnits && value)161     inline DescribeOfferingResult& WithDurationUnits(OfferingDurationUnits&& value) { SetDurationUnits(std::move(value)); return *this;}
162 
163 
164     /**
165      * One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering
166      */
GetFixedPrice()167     inline double GetFixedPrice() const{ return m_fixedPrice; }
168 
169     /**
170      * One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering
171      */
SetFixedPrice(double value)172     inline void SetFixedPrice(double value) { m_fixedPrice = value; }
173 
174     /**
175      * One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering
176      */
WithFixedPrice(double value)177     inline DescribeOfferingResult& WithFixedPrice(double value) { SetFixedPrice(value); return *this;}
178 
179 
180     /**
181      * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ
182      * in US West (Oregon)'
183      */
GetOfferingDescription()184     inline const Aws::String& GetOfferingDescription() const{ return m_offeringDescription; }
185 
186     /**
187      * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ
188      * in US West (Oregon)'
189      */
SetOfferingDescription(const Aws::String & value)190     inline void SetOfferingDescription(const Aws::String& value) { m_offeringDescription = value; }
191 
192     /**
193      * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ
194      * in US West (Oregon)'
195      */
SetOfferingDescription(Aws::String && value)196     inline void SetOfferingDescription(Aws::String&& value) { m_offeringDescription = std::move(value); }
197 
198     /**
199      * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ
200      * in US West (Oregon)'
201      */
SetOfferingDescription(const char * value)202     inline void SetOfferingDescription(const char* value) { m_offeringDescription.assign(value); }
203 
204     /**
205      * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ
206      * in US West (Oregon)'
207      */
WithOfferingDescription(const Aws::String & value)208     inline DescribeOfferingResult& WithOfferingDescription(const Aws::String& value) { SetOfferingDescription(value); return *this;}
209 
210     /**
211      * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ
212      * in US West (Oregon)'
213      */
WithOfferingDescription(Aws::String && value)214     inline DescribeOfferingResult& WithOfferingDescription(Aws::String&& value) { SetOfferingDescription(std::move(value)); return *this;}
215 
216     /**
217      * Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ
218      * in US West (Oregon)'
219      */
WithOfferingDescription(const char * value)220     inline DescribeOfferingResult& WithOfferingDescription(const char* value) { SetOfferingDescription(value); return *this;}
221 
222 
223     /**
224      * Unique offering ID, e.g. '87654321'
225      */
GetOfferingId()226     inline const Aws::String& GetOfferingId() const{ return m_offeringId; }
227 
228     /**
229      * Unique offering ID, e.g. '87654321'
230      */
SetOfferingId(const Aws::String & value)231     inline void SetOfferingId(const Aws::String& value) { m_offeringId = value; }
232 
233     /**
234      * Unique offering ID, e.g. '87654321'
235      */
SetOfferingId(Aws::String && value)236     inline void SetOfferingId(Aws::String&& value) { m_offeringId = std::move(value); }
237 
238     /**
239      * Unique offering ID, e.g. '87654321'
240      */
SetOfferingId(const char * value)241     inline void SetOfferingId(const char* value) { m_offeringId.assign(value); }
242 
243     /**
244      * Unique offering ID, e.g. '87654321'
245      */
WithOfferingId(const Aws::String & value)246     inline DescribeOfferingResult& WithOfferingId(const Aws::String& value) { SetOfferingId(value); return *this;}
247 
248     /**
249      * Unique offering ID, e.g. '87654321'
250      */
WithOfferingId(Aws::String && value)251     inline DescribeOfferingResult& WithOfferingId(Aws::String&& value) { SetOfferingId(std::move(value)); return *this;}
252 
253     /**
254      * Unique offering ID, e.g. '87654321'
255      */
WithOfferingId(const char * value)256     inline DescribeOfferingResult& WithOfferingId(const char* value) { SetOfferingId(value); return *this;}
257 
258 
259     /**
260      * Offering type, e.g. 'NO_UPFRONT'
261      */
GetOfferingType()262     inline const OfferingType& GetOfferingType() const{ return m_offeringType; }
263 
264     /**
265      * Offering type, e.g. 'NO_UPFRONT'
266      */
SetOfferingType(const OfferingType & value)267     inline void SetOfferingType(const OfferingType& value) { m_offeringType = value; }
268 
269     /**
270      * Offering type, e.g. 'NO_UPFRONT'
271      */
SetOfferingType(OfferingType && value)272     inline void SetOfferingType(OfferingType&& value) { m_offeringType = std::move(value); }
273 
274     /**
275      * Offering type, e.g. 'NO_UPFRONT'
276      */
WithOfferingType(const OfferingType & value)277     inline DescribeOfferingResult& WithOfferingType(const OfferingType& value) { SetOfferingType(value); return *this;}
278 
279     /**
280      * Offering type, e.g. 'NO_UPFRONT'
281      */
WithOfferingType(OfferingType && value)282     inline DescribeOfferingResult& WithOfferingType(OfferingType&& value) { SetOfferingType(std::move(value)); return *this;}
283 
284 
285     /**
286      * AWS region, e.g. 'us-west-2'
287      */
GetRegion()288     inline const Aws::String& GetRegion() const{ return m_region; }
289 
290     /**
291      * AWS region, e.g. 'us-west-2'
292      */
SetRegion(const Aws::String & value)293     inline void SetRegion(const Aws::String& value) { m_region = value; }
294 
295     /**
296      * AWS region, e.g. 'us-west-2'
297      */
SetRegion(Aws::String && value)298     inline void SetRegion(Aws::String&& value) { m_region = std::move(value); }
299 
300     /**
301      * AWS region, e.g. 'us-west-2'
302      */
SetRegion(const char * value)303     inline void SetRegion(const char* value) { m_region.assign(value); }
304 
305     /**
306      * AWS region, e.g. 'us-west-2'
307      */
WithRegion(const Aws::String & value)308     inline DescribeOfferingResult& WithRegion(const Aws::String& value) { SetRegion(value); return *this;}
309 
310     /**
311      * AWS region, e.g. 'us-west-2'
312      */
WithRegion(Aws::String && value)313     inline DescribeOfferingResult& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;}
314 
315     /**
316      * AWS region, e.g. 'us-west-2'
317      */
WithRegion(const char * value)318     inline DescribeOfferingResult& WithRegion(const char* value) { SetRegion(value); return *this;}
319 
320 
321     /**
322      * Resource configuration details
323      */
GetResourceSpecification()324     inline const ReservationResourceSpecification& GetResourceSpecification() const{ return m_resourceSpecification; }
325 
326     /**
327      * Resource configuration details
328      */
SetResourceSpecification(const ReservationResourceSpecification & value)329     inline void SetResourceSpecification(const ReservationResourceSpecification& value) { m_resourceSpecification = value; }
330 
331     /**
332      * Resource configuration details
333      */
SetResourceSpecification(ReservationResourceSpecification && value)334     inline void SetResourceSpecification(ReservationResourceSpecification&& value) { m_resourceSpecification = std::move(value); }
335 
336     /**
337      * Resource configuration details
338      */
WithResourceSpecification(const ReservationResourceSpecification & value)339     inline DescribeOfferingResult& WithResourceSpecification(const ReservationResourceSpecification& value) { SetResourceSpecification(value); return *this;}
340 
341     /**
342      * Resource configuration details
343      */
WithResourceSpecification(ReservationResourceSpecification && value)344     inline DescribeOfferingResult& WithResourceSpecification(ReservationResourceSpecification&& value) { SetResourceSpecification(std::move(value)); return *this;}
345 
346 
347     /**
348      * Recurring usage charge for each reserved resource, e.g. '157.0'
349      */
GetUsagePrice()350     inline double GetUsagePrice() const{ return m_usagePrice; }
351 
352     /**
353      * Recurring usage charge for each reserved resource, e.g. '157.0'
354      */
SetUsagePrice(double value)355     inline void SetUsagePrice(double value) { m_usagePrice = value; }
356 
357     /**
358      * Recurring usage charge for each reserved resource, e.g. '157.0'
359      */
WithUsagePrice(double value)360     inline DescribeOfferingResult& WithUsagePrice(double value) { SetUsagePrice(value); return *this;}
361 
362   private:
363 
364     Aws::String m_arn;
365 
366     Aws::String m_currencyCode;
367 
368     int m_duration;
369 
370     OfferingDurationUnits m_durationUnits;
371 
372     double m_fixedPrice;
373 
374     Aws::String m_offeringDescription;
375 
376     Aws::String m_offeringId;
377 
378     OfferingType m_offeringType;
379 
380     Aws::String m_region;
381 
382     ReservationResourceSpecification m_resourceSpecification;
383 
384     double m_usagePrice;
385   };
386 
387 } // namespace Model
388 } // namespace MediaLive
389 } // namespace Aws
390