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/mediaconvert/MediaConvert_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/mediaconvert/model/HlsAudioOnlyContainer.h>
10 #include <aws/mediaconvert/model/HlsAudioTrackType.h>
11 #include <aws/mediaconvert/model/HlsDescriptiveVideoServiceFlag.h>
12 #include <aws/mediaconvert/model/HlsIFrameOnlyManifest.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace MediaConvert
26 {
27 namespace Model
28 {
29 
30   /**
31    * Settings for HLS output groups<p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/HlsSettings">AWS
33    * API Reference</a></p>
34    */
35   class AWS_MEDIACONVERT_API HlsSettings
36   {
37   public:
38     HlsSettings();
39     HlsSettings(Aws::Utils::Json::JsonView jsonValue);
40     HlsSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * Specifies the group to which the audio rendition belongs.
46      */
GetAudioGroupId()47     inline const Aws::String& GetAudioGroupId() const{ return m_audioGroupId; }
48 
49     /**
50      * Specifies the group to which the audio rendition belongs.
51      */
AudioGroupIdHasBeenSet()52     inline bool AudioGroupIdHasBeenSet() const { return m_audioGroupIdHasBeenSet; }
53 
54     /**
55      * Specifies the group to which the audio rendition belongs.
56      */
SetAudioGroupId(const Aws::String & value)57     inline void SetAudioGroupId(const Aws::String& value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId = value; }
58 
59     /**
60      * Specifies the group to which the audio rendition belongs.
61      */
SetAudioGroupId(Aws::String && value)62     inline void SetAudioGroupId(Aws::String&& value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId = std::move(value); }
63 
64     /**
65      * Specifies the group to which the audio rendition belongs.
66      */
SetAudioGroupId(const char * value)67     inline void SetAudioGroupId(const char* value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId.assign(value); }
68 
69     /**
70      * Specifies the group to which the audio rendition belongs.
71      */
WithAudioGroupId(const Aws::String & value)72     inline HlsSettings& WithAudioGroupId(const Aws::String& value) { SetAudioGroupId(value); return *this;}
73 
74     /**
75      * Specifies the group to which the audio rendition belongs.
76      */
WithAudioGroupId(Aws::String && value)77     inline HlsSettings& WithAudioGroupId(Aws::String&& value) { SetAudioGroupId(std::move(value)); return *this;}
78 
79     /**
80      * Specifies the group to which the audio rendition belongs.
81      */
WithAudioGroupId(const char * value)82     inline HlsSettings& WithAudioGroupId(const char* value) { SetAudioGroupId(value); return *this;}
83 
84 
85     /**
86      * Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
87      * (M2TS) to create a file in an MPEG2-TS container. Keep the default value
88      * Automatic (AUTOMATIC) to create an audio-only file in a raw container.
89      * Regardless of the value that you specify here, if this output has video, the
90      * service will place the output into an MPEG2-TS container.
91      */
GetAudioOnlyContainer()92     inline const HlsAudioOnlyContainer& GetAudioOnlyContainer() const{ return m_audioOnlyContainer; }
93 
94     /**
95      * Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
96      * (M2TS) to create a file in an MPEG2-TS container. Keep the default value
97      * Automatic (AUTOMATIC) to create an audio-only file in a raw container.
98      * Regardless of the value that you specify here, if this output has video, the
99      * service will place the output into an MPEG2-TS container.
100      */
AudioOnlyContainerHasBeenSet()101     inline bool AudioOnlyContainerHasBeenSet() const { return m_audioOnlyContainerHasBeenSet; }
102 
103     /**
104      * Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
105      * (M2TS) to create a file in an MPEG2-TS container. Keep the default value
106      * Automatic (AUTOMATIC) to create an audio-only file in a raw container.
107      * Regardless of the value that you specify here, if this output has video, the
108      * service will place the output into an MPEG2-TS container.
109      */
SetAudioOnlyContainer(const HlsAudioOnlyContainer & value)110     inline void SetAudioOnlyContainer(const HlsAudioOnlyContainer& value) { m_audioOnlyContainerHasBeenSet = true; m_audioOnlyContainer = value; }
111 
112     /**
113      * Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
114      * (M2TS) to create a file in an MPEG2-TS container. Keep the default value
115      * Automatic (AUTOMATIC) to create an audio-only file in a raw container.
116      * Regardless of the value that you specify here, if this output has video, the
117      * service will place the output into an MPEG2-TS container.
118      */
SetAudioOnlyContainer(HlsAudioOnlyContainer && value)119     inline void SetAudioOnlyContainer(HlsAudioOnlyContainer&& value) { m_audioOnlyContainerHasBeenSet = true; m_audioOnlyContainer = std::move(value); }
120 
121     /**
122      * Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
123      * (M2TS) to create a file in an MPEG2-TS container. Keep the default value
124      * Automatic (AUTOMATIC) to create an audio-only file in a raw container.
125      * Regardless of the value that you specify here, if this output has video, the
126      * service will place the output into an MPEG2-TS container.
127      */
WithAudioOnlyContainer(const HlsAudioOnlyContainer & value)128     inline HlsSettings& WithAudioOnlyContainer(const HlsAudioOnlyContainer& value) { SetAudioOnlyContainer(value); return *this;}
129 
130     /**
131      * Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
132      * (M2TS) to create a file in an MPEG2-TS container. Keep the default value
133      * Automatic (AUTOMATIC) to create an audio-only file in a raw container.
134      * Regardless of the value that you specify here, if this output has video, the
135      * service will place the output into an MPEG2-TS container.
136      */
WithAudioOnlyContainer(HlsAudioOnlyContainer && value)137     inline HlsSettings& WithAudioOnlyContainer(HlsAudioOnlyContainer&& value) { SetAudioOnlyContainer(std::move(value)); return *this;}
138 
139 
140     /**
141      * List all the audio groups that are used with the video output stream. Input all
142      * the audio GROUP-IDs that are associated to the video, separate by ','.
143      */
GetAudioRenditionSets()144     inline const Aws::String& GetAudioRenditionSets() const{ return m_audioRenditionSets; }
145 
146     /**
147      * List all the audio groups that are used with the video output stream. Input all
148      * the audio GROUP-IDs that are associated to the video, separate by ','.
149      */
AudioRenditionSetsHasBeenSet()150     inline bool AudioRenditionSetsHasBeenSet() const { return m_audioRenditionSetsHasBeenSet; }
151 
152     /**
153      * List all the audio groups that are used with the video output stream. Input all
154      * the audio GROUP-IDs that are associated to the video, separate by ','.
155      */
SetAudioRenditionSets(const Aws::String & value)156     inline void SetAudioRenditionSets(const Aws::String& value) { m_audioRenditionSetsHasBeenSet = true; m_audioRenditionSets = value; }
157 
158     /**
159      * List all the audio groups that are used with the video output stream. Input all
160      * the audio GROUP-IDs that are associated to the video, separate by ','.
161      */
SetAudioRenditionSets(Aws::String && value)162     inline void SetAudioRenditionSets(Aws::String&& value) { m_audioRenditionSetsHasBeenSet = true; m_audioRenditionSets = std::move(value); }
163 
164     /**
165      * List all the audio groups that are used with the video output stream. Input all
166      * the audio GROUP-IDs that are associated to the video, separate by ','.
167      */
SetAudioRenditionSets(const char * value)168     inline void SetAudioRenditionSets(const char* value) { m_audioRenditionSetsHasBeenSet = true; m_audioRenditionSets.assign(value); }
169 
170     /**
171      * List all the audio groups that are used with the video output stream. Input all
172      * the audio GROUP-IDs that are associated to the video, separate by ','.
173      */
WithAudioRenditionSets(const Aws::String & value)174     inline HlsSettings& WithAudioRenditionSets(const Aws::String& value) { SetAudioRenditionSets(value); return *this;}
175 
176     /**
177      * List all the audio groups that are used with the video output stream. Input all
178      * the audio GROUP-IDs that are associated to the video, separate by ','.
179      */
WithAudioRenditionSets(Aws::String && value)180     inline HlsSettings& WithAudioRenditionSets(Aws::String&& value) { SetAudioRenditionSets(std::move(value)); return *this;}
181 
182     /**
183      * List all the audio groups that are used with the video output stream. Input all
184      * the audio GROUP-IDs that are associated to the video, separate by ','.
185      */
WithAudioRenditionSets(const char * value)186     inline HlsSettings& WithAudioRenditionSets(const char* value) { SetAudioRenditionSets(value); return *this;}
187 
188 
189     /**
190      * Four types of audio-only tracks are supported: Audio-Only Variant Stream The
191      * client can play back this audio-only stream instead of video in low-bandwidth
192      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
193      * Audio, Auto Select, Default Alternate rendition that the client should try to
194      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
195      * DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
196      * rendition that the client may try to play back by default. Represented as an
197      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
198      * not Auto Select Alternate rendition that the client will not try to play back by
199      * default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
200      * AUTOSELECT=NO
201      */
GetAudioTrackType()202     inline const HlsAudioTrackType& GetAudioTrackType() const{ return m_audioTrackType; }
203 
204     /**
205      * Four types of audio-only tracks are supported: Audio-Only Variant Stream The
206      * client can play back this audio-only stream instead of video in low-bandwidth
207      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
208      * Audio, Auto Select, Default Alternate rendition that the client should try to
209      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
210      * DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
211      * rendition that the client may try to play back by default. Represented as an
212      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
213      * not Auto Select Alternate rendition that the client will not try to play back by
214      * default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
215      * AUTOSELECT=NO
216      */
AudioTrackTypeHasBeenSet()217     inline bool AudioTrackTypeHasBeenSet() const { return m_audioTrackTypeHasBeenSet; }
218 
219     /**
220      * Four types of audio-only tracks are supported: Audio-Only Variant Stream The
221      * client can play back this audio-only stream instead of video in low-bandwidth
222      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
223      * Audio, Auto Select, Default Alternate rendition that the client should try to
224      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
225      * DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
226      * rendition that the client may try to play back by default. Represented as an
227      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
228      * not Auto Select Alternate rendition that the client will not try to play back by
229      * default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
230      * AUTOSELECT=NO
231      */
SetAudioTrackType(const HlsAudioTrackType & value)232     inline void SetAudioTrackType(const HlsAudioTrackType& value) { m_audioTrackTypeHasBeenSet = true; m_audioTrackType = value; }
233 
234     /**
235      * Four types of audio-only tracks are supported: Audio-Only Variant Stream The
236      * client can play back this audio-only stream instead of video in low-bandwidth
237      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
238      * Audio, Auto Select, Default Alternate rendition that the client should try to
239      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
240      * DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
241      * rendition that the client may try to play back by default. Represented as an
242      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
243      * not Auto Select Alternate rendition that the client will not try to play back by
244      * default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
245      * AUTOSELECT=NO
246      */
SetAudioTrackType(HlsAudioTrackType && value)247     inline void SetAudioTrackType(HlsAudioTrackType&& value) { m_audioTrackTypeHasBeenSet = true; m_audioTrackType = std::move(value); }
248 
249     /**
250      * Four types of audio-only tracks are supported: Audio-Only Variant Stream The
251      * client can play back this audio-only stream instead of video in low-bandwidth
252      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
253      * Audio, Auto Select, Default Alternate rendition that the client should try to
254      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
255      * DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
256      * rendition that the client may try to play back by default. Represented as an
257      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
258      * not Auto Select Alternate rendition that the client will not try to play back by
259      * default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
260      * AUTOSELECT=NO
261      */
WithAudioTrackType(const HlsAudioTrackType & value)262     inline HlsSettings& WithAudioTrackType(const HlsAudioTrackType& value) { SetAudioTrackType(value); return *this;}
263 
264     /**
265      * Four types of audio-only tracks are supported: Audio-Only Variant Stream The
266      * client can play back this audio-only stream instead of video in low-bandwidth
267      * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
268      * Audio, Auto Select, Default Alternate rendition that the client should try to
269      * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
270      * DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
271      * rendition that the client may try to play back by default. Represented as an
272      * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
273      * not Auto Select Alternate rendition that the client will not try to play back by
274      * default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
275      * AUTOSELECT=NO
276      */
WithAudioTrackType(HlsAudioTrackType && value)277     inline HlsSettings& WithAudioTrackType(HlsAudioTrackType&& value) { SetAudioTrackType(std::move(value)); return *this;}
278 
279 
280     /**
281      * Specify whether to flag this audio track as descriptive video service (DVS) in
282      * your HLS parent manifest. When you choose Flag (FLAG), MediaConvert includes the
283      * parameter CHARACTERISTICS="public.accessibility.describes-video" in the
284      * EXT-X-MEDIA entry for this track. When you keep the default choice, Don't flag
285      * (DONT_FLAG), MediaConvert leaves this parameter out. The DVS flag can help with
286      * accessibility on Apple devices. For more information, see the Apple
287      * documentation.
288      */
GetDescriptiveVideoServiceFlag()289     inline const HlsDescriptiveVideoServiceFlag& GetDescriptiveVideoServiceFlag() const{ return m_descriptiveVideoServiceFlag; }
290 
291     /**
292      * Specify whether to flag this audio track as descriptive video service (DVS) in
293      * your HLS parent manifest. When you choose Flag (FLAG), MediaConvert includes the
294      * parameter CHARACTERISTICS="public.accessibility.describes-video" in the
295      * EXT-X-MEDIA entry for this track. When you keep the default choice, Don't flag
296      * (DONT_FLAG), MediaConvert leaves this parameter out. The DVS flag can help with
297      * accessibility on Apple devices. For more information, see the Apple
298      * documentation.
299      */
DescriptiveVideoServiceFlagHasBeenSet()300     inline bool DescriptiveVideoServiceFlagHasBeenSet() const { return m_descriptiveVideoServiceFlagHasBeenSet; }
301 
302     /**
303      * Specify whether to flag this audio track as descriptive video service (DVS) in
304      * your HLS parent manifest. When you choose Flag (FLAG), MediaConvert includes the
305      * parameter CHARACTERISTICS="public.accessibility.describes-video" in the
306      * EXT-X-MEDIA entry for this track. When you keep the default choice, Don't flag
307      * (DONT_FLAG), MediaConvert leaves this parameter out. The DVS flag can help with
308      * accessibility on Apple devices. For more information, see the Apple
309      * documentation.
310      */
SetDescriptiveVideoServiceFlag(const HlsDescriptiveVideoServiceFlag & value)311     inline void SetDescriptiveVideoServiceFlag(const HlsDescriptiveVideoServiceFlag& value) { m_descriptiveVideoServiceFlagHasBeenSet = true; m_descriptiveVideoServiceFlag = value; }
312 
313     /**
314      * Specify whether to flag this audio track as descriptive video service (DVS) in
315      * your HLS parent manifest. When you choose Flag (FLAG), MediaConvert includes the
316      * parameter CHARACTERISTICS="public.accessibility.describes-video" in the
317      * EXT-X-MEDIA entry for this track. When you keep the default choice, Don't flag
318      * (DONT_FLAG), MediaConvert leaves this parameter out. The DVS flag can help with
319      * accessibility on Apple devices. For more information, see the Apple
320      * documentation.
321      */
SetDescriptiveVideoServiceFlag(HlsDescriptiveVideoServiceFlag && value)322     inline void SetDescriptiveVideoServiceFlag(HlsDescriptiveVideoServiceFlag&& value) { m_descriptiveVideoServiceFlagHasBeenSet = true; m_descriptiveVideoServiceFlag = std::move(value); }
323 
324     /**
325      * Specify whether to flag this audio track as descriptive video service (DVS) in
326      * your HLS parent manifest. When you choose Flag (FLAG), MediaConvert includes the
327      * parameter CHARACTERISTICS="public.accessibility.describes-video" in the
328      * EXT-X-MEDIA entry for this track. When you keep the default choice, Don't flag
329      * (DONT_FLAG), MediaConvert leaves this parameter out. The DVS flag can help with
330      * accessibility on Apple devices. For more information, see the Apple
331      * documentation.
332      */
WithDescriptiveVideoServiceFlag(const HlsDescriptiveVideoServiceFlag & value)333     inline HlsSettings& WithDescriptiveVideoServiceFlag(const HlsDescriptiveVideoServiceFlag& value) { SetDescriptiveVideoServiceFlag(value); return *this;}
334 
335     /**
336      * Specify whether to flag this audio track as descriptive video service (DVS) in
337      * your HLS parent manifest. When you choose Flag (FLAG), MediaConvert includes the
338      * parameter CHARACTERISTICS="public.accessibility.describes-video" in the
339      * EXT-X-MEDIA entry for this track. When you keep the default choice, Don't flag
340      * (DONT_FLAG), MediaConvert leaves this parameter out. The DVS flag can help with
341      * accessibility on Apple devices. For more information, see the Apple
342      * documentation.
343      */
WithDescriptiveVideoServiceFlag(HlsDescriptiveVideoServiceFlag && value)344     inline HlsSettings& WithDescriptiveVideoServiceFlag(HlsDescriptiveVideoServiceFlag&& value) { SetDescriptiveVideoServiceFlag(std::move(value)); return *this;}
345 
346 
347     /**
348      * Choose Include (INCLUDE) to have MediaConvert generate a child manifest that
349      * lists only the I-frames for this rendition, in addition to your regular manifest
350      * for this rendition. You might use this manifest as part of a workflow that
351      * creates preview functions for your video. MediaConvert adds both the I-frame
352      * only child manifest and the regular child manifest to the parent manifest. When
353      * you don't need the I-frame only child manifest, keep the default value Exclude
354      * (EXCLUDE).
355      */
GetIFrameOnlyManifest()356     inline const HlsIFrameOnlyManifest& GetIFrameOnlyManifest() const{ return m_iFrameOnlyManifest; }
357 
358     /**
359      * Choose Include (INCLUDE) to have MediaConvert generate a child manifest that
360      * lists only the I-frames for this rendition, in addition to your regular manifest
361      * for this rendition. You might use this manifest as part of a workflow that
362      * creates preview functions for your video. MediaConvert adds both the I-frame
363      * only child manifest and the regular child manifest to the parent manifest. When
364      * you don't need the I-frame only child manifest, keep the default value Exclude
365      * (EXCLUDE).
366      */
IFrameOnlyManifestHasBeenSet()367     inline bool IFrameOnlyManifestHasBeenSet() const { return m_iFrameOnlyManifestHasBeenSet; }
368 
369     /**
370      * Choose Include (INCLUDE) to have MediaConvert generate a child manifest that
371      * lists only the I-frames for this rendition, in addition to your regular manifest
372      * for this rendition. You might use this manifest as part of a workflow that
373      * creates preview functions for your video. MediaConvert adds both the I-frame
374      * only child manifest and the regular child manifest to the parent manifest. When
375      * you don't need the I-frame only child manifest, keep the default value Exclude
376      * (EXCLUDE).
377      */
SetIFrameOnlyManifest(const HlsIFrameOnlyManifest & value)378     inline void SetIFrameOnlyManifest(const HlsIFrameOnlyManifest& value) { m_iFrameOnlyManifestHasBeenSet = true; m_iFrameOnlyManifest = value; }
379 
380     /**
381      * Choose Include (INCLUDE) to have MediaConvert generate a child manifest that
382      * lists only the I-frames for this rendition, in addition to your regular manifest
383      * for this rendition. You might use this manifest as part of a workflow that
384      * creates preview functions for your video. MediaConvert adds both the I-frame
385      * only child manifest and the regular child manifest to the parent manifest. When
386      * you don't need the I-frame only child manifest, keep the default value Exclude
387      * (EXCLUDE).
388      */
SetIFrameOnlyManifest(HlsIFrameOnlyManifest && value)389     inline void SetIFrameOnlyManifest(HlsIFrameOnlyManifest&& value) { m_iFrameOnlyManifestHasBeenSet = true; m_iFrameOnlyManifest = std::move(value); }
390 
391     /**
392      * Choose Include (INCLUDE) to have MediaConvert generate a child manifest that
393      * lists only the I-frames for this rendition, in addition to your regular manifest
394      * for this rendition. You might use this manifest as part of a workflow that
395      * creates preview functions for your video. MediaConvert adds both the I-frame
396      * only child manifest and the regular child manifest to the parent manifest. When
397      * you don't need the I-frame only child manifest, keep the default value Exclude
398      * (EXCLUDE).
399      */
WithIFrameOnlyManifest(const HlsIFrameOnlyManifest & value)400     inline HlsSettings& WithIFrameOnlyManifest(const HlsIFrameOnlyManifest& value) { SetIFrameOnlyManifest(value); return *this;}
401 
402     /**
403      * Choose Include (INCLUDE) to have MediaConvert generate a child manifest that
404      * lists only the I-frames for this rendition, in addition to your regular manifest
405      * for this rendition. You might use this manifest as part of a workflow that
406      * creates preview functions for your video. MediaConvert adds both the I-frame
407      * only child manifest and the regular child manifest to the parent manifest. When
408      * you don't need the I-frame only child manifest, keep the default value Exclude
409      * (EXCLUDE).
410      */
WithIFrameOnlyManifest(HlsIFrameOnlyManifest && value)411     inline HlsSettings& WithIFrameOnlyManifest(HlsIFrameOnlyManifest&& value) { SetIFrameOnlyManifest(std::move(value)); return *this;}
412 
413 
414     /**
415      * Use this setting to add an identifying string to the filename of each segment.
416      * The service adds this string between the name modifier and segment index number.
417      * You can use format identifiers in the string. For more information, see
418      * https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
419      */
GetSegmentModifier()420     inline const Aws::String& GetSegmentModifier() const{ return m_segmentModifier; }
421 
422     /**
423      * Use this setting to add an identifying string to the filename of each segment.
424      * The service adds this string between the name modifier and segment index number.
425      * You can use format identifiers in the string. For more information, see
426      * https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
427      */
SegmentModifierHasBeenSet()428     inline bool SegmentModifierHasBeenSet() const { return m_segmentModifierHasBeenSet; }
429 
430     /**
431      * Use this setting to add an identifying string to the filename of each segment.
432      * The service adds this string between the name modifier and segment index number.
433      * You can use format identifiers in the string. For more information, see
434      * https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
435      */
SetSegmentModifier(const Aws::String & value)436     inline void SetSegmentModifier(const Aws::String& value) { m_segmentModifierHasBeenSet = true; m_segmentModifier = value; }
437 
438     /**
439      * Use this setting to add an identifying string to the filename of each segment.
440      * The service adds this string between the name modifier and segment index number.
441      * You can use format identifiers in the string. For more information, see
442      * https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
443      */
SetSegmentModifier(Aws::String && value)444     inline void SetSegmentModifier(Aws::String&& value) { m_segmentModifierHasBeenSet = true; m_segmentModifier = std::move(value); }
445 
446     /**
447      * Use this setting to add an identifying string to the filename of each segment.
448      * The service adds this string between the name modifier and segment index number.
449      * You can use format identifiers in the string. For more information, see
450      * https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
451      */
SetSegmentModifier(const char * value)452     inline void SetSegmentModifier(const char* value) { m_segmentModifierHasBeenSet = true; m_segmentModifier.assign(value); }
453 
454     /**
455      * Use this setting to add an identifying string to the filename of each segment.
456      * The service adds this string between the name modifier and segment index number.
457      * You can use format identifiers in the string. For more information, see
458      * https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
459      */
WithSegmentModifier(const Aws::String & value)460     inline HlsSettings& WithSegmentModifier(const Aws::String& value) { SetSegmentModifier(value); return *this;}
461 
462     /**
463      * Use this setting to add an identifying string to the filename of each segment.
464      * The service adds this string between the name modifier and segment index number.
465      * You can use format identifiers in the string. For more information, see
466      * https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
467      */
WithSegmentModifier(Aws::String && value)468     inline HlsSettings& WithSegmentModifier(Aws::String&& value) { SetSegmentModifier(std::move(value)); return *this;}
469 
470     /**
471      * Use this setting to add an identifying string to the filename of each segment.
472      * The service adds this string between the name modifier and segment index number.
473      * You can use format identifiers in the string. For more information, see
474      * https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
475      */
WithSegmentModifier(const char * value)476     inline HlsSettings& WithSegmentModifier(const char* value) { SetSegmentModifier(value); return *this;}
477 
478   private:
479 
480     Aws::String m_audioGroupId;
481     bool m_audioGroupIdHasBeenSet;
482 
483     HlsAudioOnlyContainer m_audioOnlyContainer;
484     bool m_audioOnlyContainerHasBeenSet;
485 
486     Aws::String m_audioRenditionSets;
487     bool m_audioRenditionSetsHasBeenSet;
488 
489     HlsAudioTrackType m_audioTrackType;
490     bool m_audioTrackTypeHasBeenSet;
491 
492     HlsDescriptiveVideoServiceFlag m_descriptiveVideoServiceFlag;
493     bool m_descriptiveVideoServiceFlagHasBeenSet;
494 
495     HlsIFrameOnlyManifest m_iFrameOnlyManifest;
496     bool m_iFrameOnlyManifestHasBeenSet;
497 
498     Aws::String m_segmentModifier;
499     bool m_segmentModifierHasBeenSet;
500   };
501 
502 } // namespace Model
503 } // namespace MediaConvert
504 } // namespace Aws
505