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/InputLocation.h>
10 #include <aws/medialive/model/AudioOnlyHlsTrackType.h>
11 #include <aws/medialive/model/AudioOnlyHlsSegmentType.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 MediaLive
25 {
26 namespace Model
27 {
28 
29   /**
30    * Audio Only Hls Settings<p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/AudioOnlyHlsSettings">AWS
32    * API Reference</a></p>
33    */
34   class AWS_MEDIALIVE_API AudioOnlyHlsSettings
35   {
36   public:
37     AudioOnlyHlsSettings();
38     AudioOnlyHlsSettings(Aws::Utils::Json::JsonView jsonValue);
39     AudioOnlyHlsSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * Specifies the group to which the audio Rendition belongs.
45      */
GetAudioGroupId()46     inline const Aws::String& GetAudioGroupId() const{ return m_audioGroupId; }
47 
48     /**
49      * Specifies the group to which the audio Rendition belongs.
50      */
AudioGroupIdHasBeenSet()51     inline bool AudioGroupIdHasBeenSet() const { return m_audioGroupIdHasBeenSet; }
52 
53     /**
54      * Specifies the group to which the audio Rendition belongs.
55      */
SetAudioGroupId(const Aws::String & value)56     inline void SetAudioGroupId(const Aws::String& value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId = value; }
57 
58     /**
59      * Specifies the group to which the audio Rendition belongs.
60      */
SetAudioGroupId(Aws::String && value)61     inline void SetAudioGroupId(Aws::String&& value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId = std::move(value); }
62 
63     /**
64      * Specifies the group to which the audio Rendition belongs.
65      */
SetAudioGroupId(const char * value)66     inline void SetAudioGroupId(const char* value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId.assign(value); }
67 
68     /**
69      * Specifies the group to which the audio Rendition belongs.
70      */
WithAudioGroupId(const Aws::String & value)71     inline AudioOnlyHlsSettings& WithAudioGroupId(const Aws::String& value) { SetAudioGroupId(value); return *this;}
72 
73     /**
74      * Specifies the group to which the audio Rendition belongs.
75      */
WithAudioGroupId(Aws::String && value)76     inline AudioOnlyHlsSettings& WithAudioGroupId(Aws::String&& value) { SetAudioGroupId(std::move(value)); return *this;}
77 
78     /**
79      * Specifies the group to which the audio Rendition belongs.
80      */
WithAudioGroupId(const char * value)81     inline AudioOnlyHlsSettings& WithAudioGroupId(const char* value) { SetAudioGroupId(value); return *this;}
82 
83 
84     /**
85      * Optional. Specifies the .jpg or .png image to use as the cover art for an
86      * audio-only output. We recommend a low bit-size file because the image increases
87      * the output audio bandwidth.
88 
89 The image is attached to the audio as an ID3 tag,
90      * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
91      * Frames" standard.
92      */
GetAudioOnlyImage()93     inline const InputLocation& GetAudioOnlyImage() const{ return m_audioOnlyImage; }
94 
95     /**
96      * Optional. Specifies the .jpg or .png image to use as the cover art for an
97      * audio-only output. We recommend a low bit-size file because the image increases
98      * the output audio bandwidth.
99 
100 The image is attached to the audio as an ID3 tag,
101      * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
102      * Frames" standard.
103      */
AudioOnlyImageHasBeenSet()104     inline bool AudioOnlyImageHasBeenSet() const { return m_audioOnlyImageHasBeenSet; }
105 
106     /**
107      * Optional. Specifies the .jpg or .png image to use as the cover art for an
108      * audio-only output. We recommend a low bit-size file because the image increases
109      * the output audio bandwidth.
110 
111 The image is attached to the audio as an ID3 tag,
112      * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
113      * Frames" standard.
114      */
SetAudioOnlyImage(const InputLocation & value)115     inline void SetAudioOnlyImage(const InputLocation& value) { m_audioOnlyImageHasBeenSet = true; m_audioOnlyImage = value; }
116 
117     /**
118      * Optional. Specifies the .jpg or .png image to use as the cover art for an
119      * audio-only output. We recommend a low bit-size file because the image increases
120      * the output audio bandwidth.
121 
122 The image is attached to the audio as an ID3 tag,
123      * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
124      * Frames" standard.
125      */
SetAudioOnlyImage(InputLocation && value)126     inline void SetAudioOnlyImage(InputLocation&& value) { m_audioOnlyImageHasBeenSet = true; m_audioOnlyImage = std::move(value); }
127 
128     /**
129      * Optional. Specifies the .jpg or .png image to use as the cover art for an
130      * audio-only output. We recommend a low bit-size file because the image increases
131      * the output audio bandwidth.
132 
133 The image is attached to the audio as an ID3 tag,
134      * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
135      * Frames" standard.
136      */
WithAudioOnlyImage(const InputLocation & value)137     inline AudioOnlyHlsSettings& WithAudioOnlyImage(const InputLocation& value) { SetAudioOnlyImage(value); return *this;}
138 
139     /**
140      * Optional. Specifies the .jpg or .png image to use as the cover art for an
141      * audio-only output. We recommend a low bit-size file because the image increases
142      * the output audio bandwidth.
143 
144 The image is attached to the audio as an ID3 tag,
145      * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
146      * Frames" standard.
147      */
WithAudioOnlyImage(InputLocation && value)148     inline AudioOnlyHlsSettings& WithAudioOnlyImage(InputLocation&& value) { SetAudioOnlyImage(std::move(value)); return *this;}
149 
150 
151     /**
152      * Four types of audio-only tracks are supported:
153 
154 Audio-Only Variant Stream
155 The
156      * client can play back this audio-only stream instead of video in low-bandwidth
157      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
158 
159 Alternate
160      * Audio, Auto Select, Default
161 Alternate rendition that the client should try to
162      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
163      * DEFAULT=YES, AUTOSELECT=YES
164 
165 Alternate Audio, Auto Select, Not Default
166 Alternate
167      * rendition that the client may try to play back by default. Represented as an
168      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES
169 
170 Alternate
171      * Audio, not Auto Select
172 Alternate rendition that the client will not try to play
173      * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
174      * DEFAULT=NO, AUTOSELECT=NO
175      */
GetAudioTrackType()176     inline const AudioOnlyHlsTrackType& GetAudioTrackType() const{ return m_audioTrackType; }
177 
178     /**
179      * Four types of audio-only tracks are supported:
180 
181 Audio-Only Variant Stream
182 The
183      * client can play back this audio-only stream instead of video in low-bandwidth
184      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
185 
186 Alternate
187      * Audio, Auto Select, Default
188 Alternate rendition that the client should try to
189      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
190      * DEFAULT=YES, AUTOSELECT=YES
191 
192 Alternate Audio, Auto Select, Not Default
193 Alternate
194      * rendition that the client may try to play back by default. Represented as an
195      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES
196 
197 Alternate
198      * Audio, not Auto Select
199 Alternate rendition that the client will not try to play
200      * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
201      * DEFAULT=NO, AUTOSELECT=NO
202      */
AudioTrackTypeHasBeenSet()203     inline bool AudioTrackTypeHasBeenSet() const { return m_audioTrackTypeHasBeenSet; }
204 
205     /**
206      * Four types of audio-only tracks are supported:
207 
208 Audio-Only Variant Stream
209 The
210      * client can play back this audio-only stream instead of video in low-bandwidth
211      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
212 
213 Alternate
214      * Audio, Auto Select, Default
215 Alternate rendition that the client should try to
216      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
217      * DEFAULT=YES, AUTOSELECT=YES
218 
219 Alternate Audio, Auto Select, Not Default
220 Alternate
221      * rendition that the client may try to play back by default. Represented as an
222      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES
223 
224 Alternate
225      * Audio, not Auto Select
226 Alternate rendition that the client will not try to play
227      * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
228      * DEFAULT=NO, AUTOSELECT=NO
229      */
SetAudioTrackType(const AudioOnlyHlsTrackType & value)230     inline void SetAudioTrackType(const AudioOnlyHlsTrackType& value) { m_audioTrackTypeHasBeenSet = true; m_audioTrackType = value; }
231 
232     /**
233      * Four types of audio-only tracks are supported:
234 
235 Audio-Only Variant Stream
236 The
237      * client can play back this audio-only stream instead of video in low-bandwidth
238      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
239 
240 Alternate
241      * Audio, Auto Select, Default
242 Alternate rendition that the client should try to
243      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
244      * DEFAULT=YES, AUTOSELECT=YES
245 
246 Alternate Audio, Auto Select, Not Default
247 Alternate
248      * rendition that the client may try to play back by default. Represented as an
249      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES
250 
251 Alternate
252      * Audio, not Auto Select
253 Alternate rendition that the client will not try to play
254      * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
255      * DEFAULT=NO, AUTOSELECT=NO
256      */
SetAudioTrackType(AudioOnlyHlsTrackType && value)257     inline void SetAudioTrackType(AudioOnlyHlsTrackType&& value) { m_audioTrackTypeHasBeenSet = true; m_audioTrackType = std::move(value); }
258 
259     /**
260      * Four types of audio-only tracks are supported:
261 
262 Audio-Only Variant Stream
263 The
264      * client can play back this audio-only stream instead of video in low-bandwidth
265      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
266 
267 Alternate
268      * Audio, Auto Select, Default
269 Alternate rendition that the client should try to
270      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
271      * DEFAULT=YES, AUTOSELECT=YES
272 
273 Alternate Audio, Auto Select, Not Default
274 Alternate
275      * rendition that the client may try to play back by default. Represented as an
276      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES
277 
278 Alternate
279      * Audio, not Auto Select
280 Alternate rendition that the client will not try to play
281      * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
282      * DEFAULT=NO, AUTOSELECT=NO
283      */
WithAudioTrackType(const AudioOnlyHlsTrackType & value)284     inline AudioOnlyHlsSettings& WithAudioTrackType(const AudioOnlyHlsTrackType& value) { SetAudioTrackType(value); return *this;}
285 
286     /**
287      * Four types of audio-only tracks are supported:
288 
289 Audio-Only Variant Stream
290 The
291      * client can play back this audio-only stream instead of video in low-bandwidth
292      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
293 
294 Alternate
295      * Audio, Auto Select, Default
296 Alternate rendition that the client should try to
297      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
298      * DEFAULT=YES, AUTOSELECT=YES
299 
300 Alternate Audio, Auto Select, Not Default
301 Alternate
302      * rendition that the client may try to play back by default. Represented as an
303      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES
304 
305 Alternate
306      * Audio, not Auto Select
307 Alternate rendition that the client will not try to play
308      * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
309      * DEFAULT=NO, AUTOSELECT=NO
310      */
WithAudioTrackType(AudioOnlyHlsTrackType && value)311     inline AudioOnlyHlsSettings& WithAudioTrackType(AudioOnlyHlsTrackType&& value) { SetAudioTrackType(std::move(value)); return *this;}
312 
313 
314     /**
315      * Specifies the segment type.
316      */
GetSegmentType()317     inline const AudioOnlyHlsSegmentType& GetSegmentType() const{ return m_segmentType; }
318 
319     /**
320      * Specifies the segment type.
321      */
SegmentTypeHasBeenSet()322     inline bool SegmentTypeHasBeenSet() const { return m_segmentTypeHasBeenSet; }
323 
324     /**
325      * Specifies the segment type.
326      */
SetSegmentType(const AudioOnlyHlsSegmentType & value)327     inline void SetSegmentType(const AudioOnlyHlsSegmentType& value) { m_segmentTypeHasBeenSet = true; m_segmentType = value; }
328 
329     /**
330      * Specifies the segment type.
331      */
SetSegmentType(AudioOnlyHlsSegmentType && value)332     inline void SetSegmentType(AudioOnlyHlsSegmentType&& value) { m_segmentTypeHasBeenSet = true; m_segmentType = std::move(value); }
333 
334     /**
335      * Specifies the segment type.
336      */
WithSegmentType(const AudioOnlyHlsSegmentType & value)337     inline AudioOnlyHlsSettings& WithSegmentType(const AudioOnlyHlsSegmentType& value) { SetSegmentType(value); return *this;}
338 
339     /**
340      * Specifies the segment type.
341      */
WithSegmentType(AudioOnlyHlsSegmentType && value)342     inline AudioOnlyHlsSettings& WithSegmentType(AudioOnlyHlsSegmentType&& value) { SetSegmentType(std::move(value)); return *this;}
343 
344   private:
345 
346     Aws::String m_audioGroupId;
347     bool m_audioGroupIdHasBeenSet;
348 
349     InputLocation m_audioOnlyImage;
350     bool m_audioOnlyImageHasBeenSet;
351 
352     AudioOnlyHlsTrackType m_audioTrackType;
353     bool m_audioTrackTypeHasBeenSet;
354 
355     AudioOnlyHlsSegmentType m_segmentType;
356     bool m_segmentTypeHasBeenSet;
357   };
358 
359 } // namespace Model
360 } // namespace MediaLive
361 } // namespace Aws
362