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/medialive/model/ChannelClass.h>
9 #include <aws/medialive/model/ReservationCodec.h>
10 #include <aws/medialive/model/ReservationMaximumBitrate.h>
11 #include <aws/medialive/model/ReservationMaximumFramerate.h>
12 #include <aws/medialive/model/ReservationResolution.h>
13 #include <aws/medialive/model/ReservationResourceType.h>
14 #include <aws/medialive/model/ReservationSpecialFeature.h>
15 #include <aws/medialive/model/ReservationVideoQuality.h>
16 #include <utility>
17 
18 namespace Aws
19 {
20 namespace Utils
21 {
22 namespace Json
23 {
24   class JsonValue;
25   class JsonView;
26 } // namespace Json
27 } // namespace Utils
28 namespace MediaLive
29 {
30 namespace Model
31 {
32 
33   /**
34    * Resource configuration (codec, resolution, bitrate, ...)<p><h3>See Also:</h3>
35    * <a
36    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/ReservationResourceSpecification">AWS
37    * API Reference</a></p>
38    */
39   class AWS_MEDIALIVE_API ReservationResourceSpecification
40   {
41   public:
42     ReservationResourceSpecification();
43     ReservationResourceSpecification(Aws::Utils::Json::JsonView jsonValue);
44     ReservationResourceSpecification& operator=(Aws::Utils::Json::JsonView jsonValue);
45     Aws::Utils::Json::JsonValue Jsonize() const;
46 
47 
48     /**
49      * Channel class, e.g. 'STANDARD'
50      */
GetChannelClass()51     inline const ChannelClass& GetChannelClass() const{ return m_channelClass; }
52 
53     /**
54      * Channel class, e.g. 'STANDARD'
55      */
ChannelClassHasBeenSet()56     inline bool ChannelClassHasBeenSet() const { return m_channelClassHasBeenSet; }
57 
58     /**
59      * Channel class, e.g. 'STANDARD'
60      */
SetChannelClass(const ChannelClass & value)61     inline void SetChannelClass(const ChannelClass& value) { m_channelClassHasBeenSet = true; m_channelClass = value; }
62 
63     /**
64      * Channel class, e.g. 'STANDARD'
65      */
SetChannelClass(ChannelClass && value)66     inline void SetChannelClass(ChannelClass&& value) { m_channelClassHasBeenSet = true; m_channelClass = std::move(value); }
67 
68     /**
69      * Channel class, e.g. 'STANDARD'
70      */
WithChannelClass(const ChannelClass & value)71     inline ReservationResourceSpecification& WithChannelClass(const ChannelClass& value) { SetChannelClass(value); return *this;}
72 
73     /**
74      * Channel class, e.g. 'STANDARD'
75      */
WithChannelClass(ChannelClass && value)76     inline ReservationResourceSpecification& WithChannelClass(ChannelClass&& value) { SetChannelClass(std::move(value)); return *this;}
77 
78 
79     /**
80      * Codec, e.g. 'AVC'
81      */
GetCodec()82     inline const ReservationCodec& GetCodec() const{ return m_codec; }
83 
84     /**
85      * Codec, e.g. 'AVC'
86      */
CodecHasBeenSet()87     inline bool CodecHasBeenSet() const { return m_codecHasBeenSet; }
88 
89     /**
90      * Codec, e.g. 'AVC'
91      */
SetCodec(const ReservationCodec & value)92     inline void SetCodec(const ReservationCodec& value) { m_codecHasBeenSet = true; m_codec = value; }
93 
94     /**
95      * Codec, e.g. 'AVC'
96      */
SetCodec(ReservationCodec && value)97     inline void SetCodec(ReservationCodec&& value) { m_codecHasBeenSet = true; m_codec = std::move(value); }
98 
99     /**
100      * Codec, e.g. 'AVC'
101      */
WithCodec(const ReservationCodec & value)102     inline ReservationResourceSpecification& WithCodec(const ReservationCodec& value) { SetCodec(value); return *this;}
103 
104     /**
105      * Codec, e.g. 'AVC'
106      */
WithCodec(ReservationCodec && value)107     inline ReservationResourceSpecification& WithCodec(ReservationCodec&& value) { SetCodec(std::move(value)); return *this;}
108 
109 
110     /**
111      * Maximum bitrate, e.g. 'MAX_20_MBPS'
112      */
GetMaximumBitrate()113     inline const ReservationMaximumBitrate& GetMaximumBitrate() const{ return m_maximumBitrate; }
114 
115     /**
116      * Maximum bitrate, e.g. 'MAX_20_MBPS'
117      */
MaximumBitrateHasBeenSet()118     inline bool MaximumBitrateHasBeenSet() const { return m_maximumBitrateHasBeenSet; }
119 
120     /**
121      * Maximum bitrate, e.g. 'MAX_20_MBPS'
122      */
SetMaximumBitrate(const ReservationMaximumBitrate & value)123     inline void SetMaximumBitrate(const ReservationMaximumBitrate& value) { m_maximumBitrateHasBeenSet = true; m_maximumBitrate = value; }
124 
125     /**
126      * Maximum bitrate, e.g. 'MAX_20_MBPS'
127      */
SetMaximumBitrate(ReservationMaximumBitrate && value)128     inline void SetMaximumBitrate(ReservationMaximumBitrate&& value) { m_maximumBitrateHasBeenSet = true; m_maximumBitrate = std::move(value); }
129 
130     /**
131      * Maximum bitrate, e.g. 'MAX_20_MBPS'
132      */
WithMaximumBitrate(const ReservationMaximumBitrate & value)133     inline ReservationResourceSpecification& WithMaximumBitrate(const ReservationMaximumBitrate& value) { SetMaximumBitrate(value); return *this;}
134 
135     /**
136      * Maximum bitrate, e.g. 'MAX_20_MBPS'
137      */
WithMaximumBitrate(ReservationMaximumBitrate && value)138     inline ReservationResourceSpecification& WithMaximumBitrate(ReservationMaximumBitrate&& value) { SetMaximumBitrate(std::move(value)); return *this;}
139 
140 
141     /**
142      * Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)
143      */
GetMaximumFramerate()144     inline const ReservationMaximumFramerate& GetMaximumFramerate() const{ return m_maximumFramerate; }
145 
146     /**
147      * Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)
148      */
MaximumFramerateHasBeenSet()149     inline bool MaximumFramerateHasBeenSet() const { return m_maximumFramerateHasBeenSet; }
150 
151     /**
152      * Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)
153      */
SetMaximumFramerate(const ReservationMaximumFramerate & value)154     inline void SetMaximumFramerate(const ReservationMaximumFramerate& value) { m_maximumFramerateHasBeenSet = true; m_maximumFramerate = value; }
155 
156     /**
157      * Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)
158      */
SetMaximumFramerate(ReservationMaximumFramerate && value)159     inline void SetMaximumFramerate(ReservationMaximumFramerate&& value) { m_maximumFramerateHasBeenSet = true; m_maximumFramerate = std::move(value); }
160 
161     /**
162      * Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)
163      */
WithMaximumFramerate(const ReservationMaximumFramerate & value)164     inline ReservationResourceSpecification& WithMaximumFramerate(const ReservationMaximumFramerate& value) { SetMaximumFramerate(value); return *this;}
165 
166     /**
167      * Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)
168      */
WithMaximumFramerate(ReservationMaximumFramerate && value)169     inline ReservationResourceSpecification& WithMaximumFramerate(ReservationMaximumFramerate&& value) { SetMaximumFramerate(std::move(value)); return *this;}
170 
171 
172     /**
173      * Resolution, e.g. 'HD'
174      */
GetResolution()175     inline const ReservationResolution& GetResolution() const{ return m_resolution; }
176 
177     /**
178      * Resolution, e.g. 'HD'
179      */
ResolutionHasBeenSet()180     inline bool ResolutionHasBeenSet() const { return m_resolutionHasBeenSet; }
181 
182     /**
183      * Resolution, e.g. 'HD'
184      */
SetResolution(const ReservationResolution & value)185     inline void SetResolution(const ReservationResolution& value) { m_resolutionHasBeenSet = true; m_resolution = value; }
186 
187     /**
188      * Resolution, e.g. 'HD'
189      */
SetResolution(ReservationResolution && value)190     inline void SetResolution(ReservationResolution&& value) { m_resolutionHasBeenSet = true; m_resolution = std::move(value); }
191 
192     /**
193      * Resolution, e.g. 'HD'
194      */
WithResolution(const ReservationResolution & value)195     inline ReservationResourceSpecification& WithResolution(const ReservationResolution& value) { SetResolution(value); return *this;}
196 
197     /**
198      * Resolution, e.g. 'HD'
199      */
WithResolution(ReservationResolution && value)200     inline ReservationResourceSpecification& WithResolution(ReservationResolution&& value) { SetResolution(std::move(value)); return *this;}
201 
202 
203     /**
204      * Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'
205      */
GetResourceType()206     inline const ReservationResourceType& GetResourceType() const{ return m_resourceType; }
207 
208     /**
209      * Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'
210      */
ResourceTypeHasBeenSet()211     inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; }
212 
213     /**
214      * Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'
215      */
SetResourceType(const ReservationResourceType & value)216     inline void SetResourceType(const ReservationResourceType& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; }
217 
218     /**
219      * Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'
220      */
SetResourceType(ReservationResourceType && value)221     inline void SetResourceType(ReservationResourceType&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); }
222 
223     /**
224      * Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'
225      */
WithResourceType(const ReservationResourceType & value)226     inline ReservationResourceSpecification& WithResourceType(const ReservationResourceType& value) { SetResourceType(value); return *this;}
227 
228     /**
229      * Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'
230      */
WithResourceType(ReservationResourceType && value)231     inline ReservationResourceSpecification& WithResourceType(ReservationResourceType&& value) { SetResourceType(std::move(value)); return *this;}
232 
233 
234     /**
235      * Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)
236      */
GetSpecialFeature()237     inline const ReservationSpecialFeature& GetSpecialFeature() const{ return m_specialFeature; }
238 
239     /**
240      * Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)
241      */
SpecialFeatureHasBeenSet()242     inline bool SpecialFeatureHasBeenSet() const { return m_specialFeatureHasBeenSet; }
243 
244     /**
245      * Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)
246      */
SetSpecialFeature(const ReservationSpecialFeature & value)247     inline void SetSpecialFeature(const ReservationSpecialFeature& value) { m_specialFeatureHasBeenSet = true; m_specialFeature = value; }
248 
249     /**
250      * Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)
251      */
SetSpecialFeature(ReservationSpecialFeature && value)252     inline void SetSpecialFeature(ReservationSpecialFeature&& value) { m_specialFeatureHasBeenSet = true; m_specialFeature = std::move(value); }
253 
254     /**
255      * Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)
256      */
WithSpecialFeature(const ReservationSpecialFeature & value)257     inline ReservationResourceSpecification& WithSpecialFeature(const ReservationSpecialFeature& value) { SetSpecialFeature(value); return *this;}
258 
259     /**
260      * Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)
261      */
WithSpecialFeature(ReservationSpecialFeature && value)262     inline ReservationResourceSpecification& WithSpecialFeature(ReservationSpecialFeature&& value) { SetSpecialFeature(std::move(value)); return *this;}
263 
264 
265     /**
266      * Video quality, e.g. 'STANDARD' (Outputs only)
267      */
GetVideoQuality()268     inline const ReservationVideoQuality& GetVideoQuality() const{ return m_videoQuality; }
269 
270     /**
271      * Video quality, e.g. 'STANDARD' (Outputs only)
272      */
VideoQualityHasBeenSet()273     inline bool VideoQualityHasBeenSet() const { return m_videoQualityHasBeenSet; }
274 
275     /**
276      * Video quality, e.g. 'STANDARD' (Outputs only)
277      */
SetVideoQuality(const ReservationVideoQuality & value)278     inline void SetVideoQuality(const ReservationVideoQuality& value) { m_videoQualityHasBeenSet = true; m_videoQuality = value; }
279 
280     /**
281      * Video quality, e.g. 'STANDARD' (Outputs only)
282      */
SetVideoQuality(ReservationVideoQuality && value)283     inline void SetVideoQuality(ReservationVideoQuality&& value) { m_videoQualityHasBeenSet = true; m_videoQuality = std::move(value); }
284 
285     /**
286      * Video quality, e.g. 'STANDARD' (Outputs only)
287      */
WithVideoQuality(const ReservationVideoQuality & value)288     inline ReservationResourceSpecification& WithVideoQuality(const ReservationVideoQuality& value) { SetVideoQuality(value); return *this;}
289 
290     /**
291      * Video quality, e.g. 'STANDARD' (Outputs only)
292      */
WithVideoQuality(ReservationVideoQuality && value)293     inline ReservationResourceSpecification& WithVideoQuality(ReservationVideoQuality&& value) { SetVideoQuality(std::move(value)); return *this;}
294 
295   private:
296 
297     ChannelClass m_channelClass;
298     bool m_channelClassHasBeenSet;
299 
300     ReservationCodec m_codec;
301     bool m_codecHasBeenSet;
302 
303     ReservationMaximumBitrate m_maximumBitrate;
304     bool m_maximumBitrateHasBeenSet;
305 
306     ReservationMaximumFramerate m_maximumFramerate;
307     bool m_maximumFramerateHasBeenSet;
308 
309     ReservationResolution m_resolution;
310     bool m_resolutionHasBeenSet;
311 
312     ReservationResourceType m_resourceType;
313     bool m_resourceTypeHasBeenSet;
314 
315     ReservationSpecialFeature m_specialFeature;
316     bool m_specialFeatureHasBeenSet;
317 
318     ReservationVideoQuality m_videoQuality;
319     bool m_videoQualityHasBeenSet;
320   };
321 
322 } // namespace Model
323 } // namespace MediaLive
324 } // namespace Aws
325