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/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/medialive/model/HlsCaptionLanguageSetting.h>
11 #include <aws/medialive/model/HlsClientCache.h>
12 #include <aws/medialive/model/HlsCodecSpecification.h>
13 #include <aws/medialive/model/OutputLocationRef.h>
14 #include <aws/medialive/model/HlsDirectoryStructure.h>
15 #include <aws/medialive/model/HlsDiscontinuityTags.h>
16 #include <aws/medialive/model/HlsEncryptionType.h>
17 #include <aws/medialive/model/HlsCdnSettings.h>
18 #include <aws/medialive/model/HlsId3SegmentTaggingState.h>
19 #include <aws/medialive/model/IFrameOnlyPlaylistType.h>
20 #include <aws/medialive/model/HlsIncompleteSegmentBehavior.h>
21 #include <aws/medialive/model/InputLossActionForHlsOut.h>
22 #include <aws/medialive/model/HlsIvInManifest.h>
23 #include <aws/medialive/model/HlsIvSource.h>
24 #include <aws/medialive/model/KeyProviderSettings.h>
25 #include <aws/medialive/model/HlsManifestCompression.h>
26 #include <aws/medialive/model/HlsManifestDurationFormat.h>
27 #include <aws/medialive/model/HlsMode.h>
28 #include <aws/medialive/model/HlsOutputSelection.h>
29 #include <aws/medialive/model/HlsProgramDateTime.h>
30 #include <aws/medialive/model/HlsRedundantManifest.h>
31 #include <aws/medialive/model/HlsSegmentationMode.h>
32 #include <aws/medialive/model/HlsStreamInfResolution.h>
33 #include <aws/medialive/model/HlsTimedMetadataId3Frame.h>
34 #include <aws/medialive/model/HlsTsFileMode.h>
35 #include <aws/medialive/model/HlsAdMarkers.h>
36 #include <aws/medialive/model/CaptionLanguageMapping.h>
37 #include <utility>
38 
39 namespace Aws
40 {
41 namespace Utils
42 {
43 namespace Json
44 {
45   class JsonValue;
46   class JsonView;
47 } // namespace Json
48 } // namespace Utils
49 namespace MediaLive
50 {
51 namespace Model
52 {
53 
54   /**
55    * Hls Group Settings<p><h3>See Also:</h3>   <a
56    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/HlsGroupSettings">AWS
57    * API Reference</a></p>
58    */
59   class AWS_MEDIALIVE_API HlsGroupSettings
60   {
61   public:
62     HlsGroupSettings();
63     HlsGroupSettings(Aws::Utils::Json::JsonView jsonValue);
64     HlsGroupSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
65     Aws::Utils::Json::JsonValue Jsonize() const;
66 
67 
68     /**
69      * Choose one or more ad marker types to pass SCTE35 signals through to this group
70      * of Apple HLS outputs.
71      */
GetAdMarkers()72     inline const Aws::Vector<HlsAdMarkers>& GetAdMarkers() const{ return m_adMarkers; }
73 
74     /**
75      * Choose one or more ad marker types to pass SCTE35 signals through to this group
76      * of Apple HLS outputs.
77      */
AdMarkersHasBeenSet()78     inline bool AdMarkersHasBeenSet() const { return m_adMarkersHasBeenSet; }
79 
80     /**
81      * Choose one or more ad marker types to pass SCTE35 signals through to this group
82      * of Apple HLS outputs.
83      */
SetAdMarkers(const Aws::Vector<HlsAdMarkers> & value)84     inline void SetAdMarkers(const Aws::Vector<HlsAdMarkers>& value) { m_adMarkersHasBeenSet = true; m_adMarkers = value; }
85 
86     /**
87      * Choose one or more ad marker types to pass SCTE35 signals through to this group
88      * of Apple HLS outputs.
89      */
SetAdMarkers(Aws::Vector<HlsAdMarkers> && value)90     inline void SetAdMarkers(Aws::Vector<HlsAdMarkers>&& value) { m_adMarkersHasBeenSet = true; m_adMarkers = std::move(value); }
91 
92     /**
93      * Choose one or more ad marker types to pass SCTE35 signals through to this group
94      * of Apple HLS outputs.
95      */
WithAdMarkers(const Aws::Vector<HlsAdMarkers> & value)96     inline HlsGroupSettings& WithAdMarkers(const Aws::Vector<HlsAdMarkers>& value) { SetAdMarkers(value); return *this;}
97 
98     /**
99      * Choose one or more ad marker types to pass SCTE35 signals through to this group
100      * of Apple HLS outputs.
101      */
WithAdMarkers(Aws::Vector<HlsAdMarkers> && value)102     inline HlsGroupSettings& WithAdMarkers(Aws::Vector<HlsAdMarkers>&& value) { SetAdMarkers(std::move(value)); return *this;}
103 
104     /**
105      * Choose one or more ad marker types to pass SCTE35 signals through to this group
106      * of Apple HLS outputs.
107      */
AddAdMarkers(const HlsAdMarkers & value)108     inline HlsGroupSettings& AddAdMarkers(const HlsAdMarkers& value) { m_adMarkersHasBeenSet = true; m_adMarkers.push_back(value); return *this; }
109 
110     /**
111      * Choose one or more ad marker types to pass SCTE35 signals through to this group
112      * of Apple HLS outputs.
113      */
AddAdMarkers(HlsAdMarkers && value)114     inline HlsGroupSettings& AddAdMarkers(HlsAdMarkers&& value) { m_adMarkersHasBeenSet = true; m_adMarkers.push_back(std::move(value)); return *this; }
115 
116 
117     /**
118      * A partial URI prefix that will be prepended to each output in the media .m3u8
119      * file. Can be used if base manifest is delivered from a different URL than the
120      * main .m3u8 file.
121      */
GetBaseUrlContent()122     inline const Aws::String& GetBaseUrlContent() const{ return m_baseUrlContent; }
123 
124     /**
125      * A partial URI prefix that will be prepended to each output in the media .m3u8
126      * file. Can be used if base manifest is delivered from a different URL than the
127      * main .m3u8 file.
128      */
BaseUrlContentHasBeenSet()129     inline bool BaseUrlContentHasBeenSet() const { return m_baseUrlContentHasBeenSet; }
130 
131     /**
132      * A partial URI prefix that will be prepended to each output in the media .m3u8
133      * file. Can be used if base manifest is delivered from a different URL than the
134      * main .m3u8 file.
135      */
SetBaseUrlContent(const Aws::String & value)136     inline void SetBaseUrlContent(const Aws::String& value) { m_baseUrlContentHasBeenSet = true; m_baseUrlContent = value; }
137 
138     /**
139      * A partial URI prefix that will be prepended to each output in the media .m3u8
140      * file. Can be used if base manifest is delivered from a different URL than the
141      * main .m3u8 file.
142      */
SetBaseUrlContent(Aws::String && value)143     inline void SetBaseUrlContent(Aws::String&& value) { m_baseUrlContentHasBeenSet = true; m_baseUrlContent = std::move(value); }
144 
145     /**
146      * A partial URI prefix that will be prepended to each output in the media .m3u8
147      * file. Can be used if base manifest is delivered from a different URL than the
148      * main .m3u8 file.
149      */
SetBaseUrlContent(const char * value)150     inline void SetBaseUrlContent(const char* value) { m_baseUrlContentHasBeenSet = true; m_baseUrlContent.assign(value); }
151 
152     /**
153      * A partial URI prefix that will be prepended to each output in the media .m3u8
154      * file. Can be used if base manifest is delivered from a different URL than the
155      * main .m3u8 file.
156      */
WithBaseUrlContent(const Aws::String & value)157     inline HlsGroupSettings& WithBaseUrlContent(const Aws::String& value) { SetBaseUrlContent(value); return *this;}
158 
159     /**
160      * A partial URI prefix that will be prepended to each output in the media .m3u8
161      * file. Can be used if base manifest is delivered from a different URL than the
162      * main .m3u8 file.
163      */
WithBaseUrlContent(Aws::String && value)164     inline HlsGroupSettings& WithBaseUrlContent(Aws::String&& value) { SetBaseUrlContent(std::move(value)); return *this;}
165 
166     /**
167      * A partial URI prefix that will be prepended to each output in the media .m3u8
168      * file. Can be used if base manifest is delivered from a different URL than the
169      * main .m3u8 file.
170      */
WithBaseUrlContent(const char * value)171     inline HlsGroupSettings& WithBaseUrlContent(const char* value) { SetBaseUrlContent(value); return *this;}
172 
173 
174     /**
175      * Optional. One value per output group.
176 
177 This field is required only if you are
178      * completing Base URL content A, and the downstream system has notified you that
179      * the media files for pipeline 1 of all outputs are in a location different from
180      * the media files for pipeline 0.
181      */
GetBaseUrlContent1()182     inline const Aws::String& GetBaseUrlContent1() const{ return m_baseUrlContent1; }
183 
184     /**
185      * Optional. One value per output group.
186 
187 This field is required only if you are
188      * completing Base URL content A, and the downstream system has notified you that
189      * the media files for pipeline 1 of all outputs are in a location different from
190      * the media files for pipeline 0.
191      */
BaseUrlContent1HasBeenSet()192     inline bool BaseUrlContent1HasBeenSet() const { return m_baseUrlContent1HasBeenSet; }
193 
194     /**
195      * Optional. One value per output group.
196 
197 This field is required only if you are
198      * completing Base URL content A, and the downstream system has notified you that
199      * the media files for pipeline 1 of all outputs are in a location different from
200      * the media files for pipeline 0.
201      */
SetBaseUrlContent1(const Aws::String & value)202     inline void SetBaseUrlContent1(const Aws::String& value) { m_baseUrlContent1HasBeenSet = true; m_baseUrlContent1 = value; }
203 
204     /**
205      * Optional. One value per output group.
206 
207 This field is required only if you are
208      * completing Base URL content A, and the downstream system has notified you that
209      * the media files for pipeline 1 of all outputs are in a location different from
210      * the media files for pipeline 0.
211      */
SetBaseUrlContent1(Aws::String && value)212     inline void SetBaseUrlContent1(Aws::String&& value) { m_baseUrlContent1HasBeenSet = true; m_baseUrlContent1 = std::move(value); }
213 
214     /**
215      * Optional. One value per output group.
216 
217 This field is required only if you are
218      * completing Base URL content A, and the downstream system has notified you that
219      * the media files for pipeline 1 of all outputs are in a location different from
220      * the media files for pipeline 0.
221      */
SetBaseUrlContent1(const char * value)222     inline void SetBaseUrlContent1(const char* value) { m_baseUrlContent1HasBeenSet = true; m_baseUrlContent1.assign(value); }
223 
224     /**
225      * Optional. One value per output group.
226 
227 This field is required only if you are
228      * completing Base URL content A, and the downstream system has notified you that
229      * the media files for pipeline 1 of all outputs are in a location different from
230      * the media files for pipeline 0.
231      */
WithBaseUrlContent1(const Aws::String & value)232     inline HlsGroupSettings& WithBaseUrlContent1(const Aws::String& value) { SetBaseUrlContent1(value); return *this;}
233 
234     /**
235      * Optional. One value per output group.
236 
237 This field is required only if you are
238      * completing Base URL content A, and the downstream system has notified you that
239      * the media files for pipeline 1 of all outputs are in a location different from
240      * the media files for pipeline 0.
241      */
WithBaseUrlContent1(Aws::String && value)242     inline HlsGroupSettings& WithBaseUrlContent1(Aws::String&& value) { SetBaseUrlContent1(std::move(value)); return *this;}
243 
244     /**
245      * Optional. One value per output group.
246 
247 This field is required only if you are
248      * completing Base URL content A, and the downstream system has notified you that
249      * the media files for pipeline 1 of all outputs are in a location different from
250      * the media files for pipeline 0.
251      */
WithBaseUrlContent1(const char * value)252     inline HlsGroupSettings& WithBaseUrlContent1(const char* value) { SetBaseUrlContent1(value); return *this;}
253 
254 
255     /**
256      * A partial URI prefix that will be prepended to each output in the media .m3u8
257      * file. Can be used if base manifest is delivered from a different URL than the
258      * main .m3u8 file.
259      */
GetBaseUrlManifest()260     inline const Aws::String& GetBaseUrlManifest() const{ return m_baseUrlManifest; }
261 
262     /**
263      * A partial URI prefix that will be prepended to each output in the media .m3u8
264      * file. Can be used if base manifest is delivered from a different URL than the
265      * main .m3u8 file.
266      */
BaseUrlManifestHasBeenSet()267     inline bool BaseUrlManifestHasBeenSet() const { return m_baseUrlManifestHasBeenSet; }
268 
269     /**
270      * A partial URI prefix that will be prepended to each output in the media .m3u8
271      * file. Can be used if base manifest is delivered from a different URL than the
272      * main .m3u8 file.
273      */
SetBaseUrlManifest(const Aws::String & value)274     inline void SetBaseUrlManifest(const Aws::String& value) { m_baseUrlManifestHasBeenSet = true; m_baseUrlManifest = value; }
275 
276     /**
277      * A partial URI prefix that will be prepended to each output in the media .m3u8
278      * file. Can be used if base manifest is delivered from a different URL than the
279      * main .m3u8 file.
280      */
SetBaseUrlManifest(Aws::String && value)281     inline void SetBaseUrlManifest(Aws::String&& value) { m_baseUrlManifestHasBeenSet = true; m_baseUrlManifest = std::move(value); }
282 
283     /**
284      * A partial URI prefix that will be prepended to each output in the media .m3u8
285      * file. Can be used if base manifest is delivered from a different URL than the
286      * main .m3u8 file.
287      */
SetBaseUrlManifest(const char * value)288     inline void SetBaseUrlManifest(const char* value) { m_baseUrlManifestHasBeenSet = true; m_baseUrlManifest.assign(value); }
289 
290     /**
291      * A partial URI prefix that will be prepended to each output in the media .m3u8
292      * file. Can be used if base manifest is delivered from a different URL than the
293      * main .m3u8 file.
294      */
WithBaseUrlManifest(const Aws::String & value)295     inline HlsGroupSettings& WithBaseUrlManifest(const Aws::String& value) { SetBaseUrlManifest(value); return *this;}
296 
297     /**
298      * A partial URI prefix that will be prepended to each output in the media .m3u8
299      * file. Can be used if base manifest is delivered from a different URL than the
300      * main .m3u8 file.
301      */
WithBaseUrlManifest(Aws::String && value)302     inline HlsGroupSettings& WithBaseUrlManifest(Aws::String&& value) { SetBaseUrlManifest(std::move(value)); return *this;}
303 
304     /**
305      * A partial URI prefix that will be prepended to each output in the media .m3u8
306      * file. Can be used if base manifest is delivered from a different URL than the
307      * main .m3u8 file.
308      */
WithBaseUrlManifest(const char * value)309     inline HlsGroupSettings& WithBaseUrlManifest(const char* value) { SetBaseUrlManifest(value); return *this;}
310 
311 
312     /**
313      * Optional. One value per output group.
314 
315 Complete this field only if you are
316      * completing Base URL manifest A, and the downstream system has notified you that
317      * the child manifest files for pipeline 1 of all outputs are in a location
318      * different from the child manifest files for pipeline 0.
319      */
GetBaseUrlManifest1()320     inline const Aws::String& GetBaseUrlManifest1() const{ return m_baseUrlManifest1; }
321 
322     /**
323      * Optional. One value per output group.
324 
325 Complete this field only if you are
326      * completing Base URL manifest A, and the downstream system has notified you that
327      * the child manifest files for pipeline 1 of all outputs are in a location
328      * different from the child manifest files for pipeline 0.
329      */
BaseUrlManifest1HasBeenSet()330     inline bool BaseUrlManifest1HasBeenSet() const { return m_baseUrlManifest1HasBeenSet; }
331 
332     /**
333      * Optional. One value per output group.
334 
335 Complete this field only if you are
336      * completing Base URL manifest A, and the downstream system has notified you that
337      * the child manifest files for pipeline 1 of all outputs are in a location
338      * different from the child manifest files for pipeline 0.
339      */
SetBaseUrlManifest1(const Aws::String & value)340     inline void SetBaseUrlManifest1(const Aws::String& value) { m_baseUrlManifest1HasBeenSet = true; m_baseUrlManifest1 = value; }
341 
342     /**
343      * Optional. One value per output group.
344 
345 Complete this field only if you are
346      * completing Base URL manifest A, and the downstream system has notified you that
347      * the child manifest files for pipeline 1 of all outputs are in a location
348      * different from the child manifest files for pipeline 0.
349      */
SetBaseUrlManifest1(Aws::String && value)350     inline void SetBaseUrlManifest1(Aws::String&& value) { m_baseUrlManifest1HasBeenSet = true; m_baseUrlManifest1 = std::move(value); }
351 
352     /**
353      * Optional. One value per output group.
354 
355 Complete this field only if you are
356      * completing Base URL manifest A, and the downstream system has notified you that
357      * the child manifest files for pipeline 1 of all outputs are in a location
358      * different from the child manifest files for pipeline 0.
359      */
SetBaseUrlManifest1(const char * value)360     inline void SetBaseUrlManifest1(const char* value) { m_baseUrlManifest1HasBeenSet = true; m_baseUrlManifest1.assign(value); }
361 
362     /**
363      * Optional. One value per output group.
364 
365 Complete this field only if you are
366      * completing Base URL manifest A, and the downstream system has notified you that
367      * the child manifest files for pipeline 1 of all outputs are in a location
368      * different from the child manifest files for pipeline 0.
369      */
WithBaseUrlManifest1(const Aws::String & value)370     inline HlsGroupSettings& WithBaseUrlManifest1(const Aws::String& value) { SetBaseUrlManifest1(value); return *this;}
371 
372     /**
373      * Optional. One value per output group.
374 
375 Complete this field only if you are
376      * completing Base URL manifest A, and the downstream system has notified you that
377      * the child manifest files for pipeline 1 of all outputs are in a location
378      * different from the child manifest files for pipeline 0.
379      */
WithBaseUrlManifest1(Aws::String && value)380     inline HlsGroupSettings& WithBaseUrlManifest1(Aws::String&& value) { SetBaseUrlManifest1(std::move(value)); return *this;}
381 
382     /**
383      * Optional. One value per output group.
384 
385 Complete this field only if you are
386      * completing Base URL manifest A, and the downstream system has notified you that
387      * the child manifest files for pipeline 1 of all outputs are in a location
388      * different from the child manifest files for pipeline 0.
389      */
WithBaseUrlManifest1(const char * value)390     inline HlsGroupSettings& WithBaseUrlManifest1(const char* value) { SetBaseUrlManifest1(value); return *this;}
391 
392 
393     /**
394      * Mapping of up to 4 caption channels to caption languages.  Is only meaningful if
395      * captionLanguageSetting is set to "insert".
396      */
GetCaptionLanguageMappings()397     inline const Aws::Vector<CaptionLanguageMapping>& GetCaptionLanguageMappings() const{ return m_captionLanguageMappings; }
398 
399     /**
400      * Mapping of up to 4 caption channels to caption languages.  Is only meaningful if
401      * captionLanguageSetting is set to "insert".
402      */
CaptionLanguageMappingsHasBeenSet()403     inline bool CaptionLanguageMappingsHasBeenSet() const { return m_captionLanguageMappingsHasBeenSet; }
404 
405     /**
406      * Mapping of up to 4 caption channels to caption languages.  Is only meaningful if
407      * captionLanguageSetting is set to "insert".
408      */
SetCaptionLanguageMappings(const Aws::Vector<CaptionLanguageMapping> & value)409     inline void SetCaptionLanguageMappings(const Aws::Vector<CaptionLanguageMapping>& value) { m_captionLanguageMappingsHasBeenSet = true; m_captionLanguageMappings = value; }
410 
411     /**
412      * Mapping of up to 4 caption channels to caption languages.  Is only meaningful if
413      * captionLanguageSetting is set to "insert".
414      */
SetCaptionLanguageMappings(Aws::Vector<CaptionLanguageMapping> && value)415     inline void SetCaptionLanguageMappings(Aws::Vector<CaptionLanguageMapping>&& value) { m_captionLanguageMappingsHasBeenSet = true; m_captionLanguageMappings = std::move(value); }
416 
417     /**
418      * Mapping of up to 4 caption channels to caption languages.  Is only meaningful if
419      * captionLanguageSetting is set to "insert".
420      */
WithCaptionLanguageMappings(const Aws::Vector<CaptionLanguageMapping> & value)421     inline HlsGroupSettings& WithCaptionLanguageMappings(const Aws::Vector<CaptionLanguageMapping>& value) { SetCaptionLanguageMappings(value); return *this;}
422 
423     /**
424      * Mapping of up to 4 caption channels to caption languages.  Is only meaningful if
425      * captionLanguageSetting is set to "insert".
426      */
WithCaptionLanguageMappings(Aws::Vector<CaptionLanguageMapping> && value)427     inline HlsGroupSettings& WithCaptionLanguageMappings(Aws::Vector<CaptionLanguageMapping>&& value) { SetCaptionLanguageMappings(std::move(value)); return *this;}
428 
429     /**
430      * Mapping of up to 4 caption channels to caption languages.  Is only meaningful if
431      * captionLanguageSetting is set to "insert".
432      */
AddCaptionLanguageMappings(const CaptionLanguageMapping & value)433     inline HlsGroupSettings& AddCaptionLanguageMappings(const CaptionLanguageMapping& value) { m_captionLanguageMappingsHasBeenSet = true; m_captionLanguageMappings.push_back(value); return *this; }
434 
435     /**
436      * Mapping of up to 4 caption channels to caption languages.  Is only meaningful if
437      * captionLanguageSetting is set to "insert".
438      */
AddCaptionLanguageMappings(CaptionLanguageMapping && value)439     inline HlsGroupSettings& AddCaptionLanguageMappings(CaptionLanguageMapping&& value) { m_captionLanguageMappingsHasBeenSet = true; m_captionLanguageMappings.push_back(std::move(value)); return *this; }
440 
441 
442     /**
443      * Applies only to 608 Embedded output captions.
444 insert: Include CLOSED-CAPTIONS
445      * lines in the manifest. Specify at least one language in the CC1 Language Code
446      * field. One CLOSED-CAPTION line is added for each Language Code you specify. Make
447      * sure to specify the languages in the order in which they appear in the original
448      * source (if the source is embedded format) or the order of the caption selectors
449      * (if the source is other than embedded). Otherwise, languages in the manifest
450      * will not match up properly with the output captions.
451 none: Include
452      * CLOSED-CAPTIONS=NONE line in the manifest.
453 omit: Omit any CLOSED-CAPTIONS line
454      * from the manifest.
455      */
GetCaptionLanguageSetting()456     inline const HlsCaptionLanguageSetting& GetCaptionLanguageSetting() const{ return m_captionLanguageSetting; }
457 
458     /**
459      * Applies only to 608 Embedded output captions.
460 insert: Include CLOSED-CAPTIONS
461      * lines in the manifest. Specify at least one language in the CC1 Language Code
462      * field. One CLOSED-CAPTION line is added for each Language Code you specify. Make
463      * sure to specify the languages in the order in which they appear in the original
464      * source (if the source is embedded format) or the order of the caption selectors
465      * (if the source is other than embedded). Otherwise, languages in the manifest
466      * will not match up properly with the output captions.
467 none: Include
468      * CLOSED-CAPTIONS=NONE line in the manifest.
469 omit: Omit any CLOSED-CAPTIONS line
470      * from the manifest.
471      */
CaptionLanguageSettingHasBeenSet()472     inline bool CaptionLanguageSettingHasBeenSet() const { return m_captionLanguageSettingHasBeenSet; }
473 
474     /**
475      * Applies only to 608 Embedded output captions.
476 insert: Include CLOSED-CAPTIONS
477      * lines in the manifest. Specify at least one language in the CC1 Language Code
478      * field. One CLOSED-CAPTION line is added for each Language Code you specify. Make
479      * sure to specify the languages in the order in which they appear in the original
480      * source (if the source is embedded format) or the order of the caption selectors
481      * (if the source is other than embedded). Otherwise, languages in the manifest
482      * will not match up properly with the output captions.
483 none: Include
484      * CLOSED-CAPTIONS=NONE line in the manifest.
485 omit: Omit any CLOSED-CAPTIONS line
486      * from the manifest.
487      */
SetCaptionLanguageSetting(const HlsCaptionLanguageSetting & value)488     inline void SetCaptionLanguageSetting(const HlsCaptionLanguageSetting& value) { m_captionLanguageSettingHasBeenSet = true; m_captionLanguageSetting = value; }
489 
490     /**
491      * Applies only to 608 Embedded output captions.
492 insert: Include CLOSED-CAPTIONS
493      * lines in the manifest. Specify at least one language in the CC1 Language Code
494      * field. One CLOSED-CAPTION line is added for each Language Code you specify. Make
495      * sure to specify the languages in the order in which they appear in the original
496      * source (if the source is embedded format) or the order of the caption selectors
497      * (if the source is other than embedded). Otherwise, languages in the manifest
498      * will not match up properly with the output captions.
499 none: Include
500      * CLOSED-CAPTIONS=NONE line in the manifest.
501 omit: Omit any CLOSED-CAPTIONS line
502      * from the manifest.
503      */
SetCaptionLanguageSetting(HlsCaptionLanguageSetting && value)504     inline void SetCaptionLanguageSetting(HlsCaptionLanguageSetting&& value) { m_captionLanguageSettingHasBeenSet = true; m_captionLanguageSetting = std::move(value); }
505 
506     /**
507      * Applies only to 608 Embedded output captions.
508 insert: Include CLOSED-CAPTIONS
509      * lines in the manifest. Specify at least one language in the CC1 Language Code
510      * field. One CLOSED-CAPTION line is added for each Language Code you specify. Make
511      * sure to specify the languages in the order in which they appear in the original
512      * source (if the source is embedded format) or the order of the caption selectors
513      * (if the source is other than embedded). Otherwise, languages in the manifest
514      * will not match up properly with the output captions.
515 none: Include
516      * CLOSED-CAPTIONS=NONE line in the manifest.
517 omit: Omit any CLOSED-CAPTIONS line
518      * from the manifest.
519      */
WithCaptionLanguageSetting(const HlsCaptionLanguageSetting & value)520     inline HlsGroupSettings& WithCaptionLanguageSetting(const HlsCaptionLanguageSetting& value) { SetCaptionLanguageSetting(value); return *this;}
521 
522     /**
523      * Applies only to 608 Embedded output captions.
524 insert: Include CLOSED-CAPTIONS
525      * lines in the manifest. Specify at least one language in the CC1 Language Code
526      * field. One CLOSED-CAPTION line is added for each Language Code you specify. Make
527      * sure to specify the languages in the order in which they appear in the original
528      * source (if the source is embedded format) or the order of the caption selectors
529      * (if the source is other than embedded). Otherwise, languages in the manifest
530      * will not match up properly with the output captions.
531 none: Include
532      * CLOSED-CAPTIONS=NONE line in the manifest.
533 omit: Omit any CLOSED-CAPTIONS line
534      * from the manifest.
535      */
WithCaptionLanguageSetting(HlsCaptionLanguageSetting && value)536     inline HlsGroupSettings& WithCaptionLanguageSetting(HlsCaptionLanguageSetting&& value) { SetCaptionLanguageSetting(std::move(value)); return *this;}
537 
538 
539     /**
540      * When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in the manifest,
541      * which prevents clients from saving media segments for later replay.
542      */
GetClientCache()543     inline const HlsClientCache& GetClientCache() const{ return m_clientCache; }
544 
545     /**
546      * When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in the manifest,
547      * which prevents clients from saving media segments for later replay.
548      */
ClientCacheHasBeenSet()549     inline bool ClientCacheHasBeenSet() const { return m_clientCacheHasBeenSet; }
550 
551     /**
552      * When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in the manifest,
553      * which prevents clients from saving media segments for later replay.
554      */
SetClientCache(const HlsClientCache & value)555     inline void SetClientCache(const HlsClientCache& value) { m_clientCacheHasBeenSet = true; m_clientCache = value; }
556 
557     /**
558      * When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in the manifest,
559      * which prevents clients from saving media segments for later replay.
560      */
SetClientCache(HlsClientCache && value)561     inline void SetClientCache(HlsClientCache&& value) { m_clientCacheHasBeenSet = true; m_clientCache = std::move(value); }
562 
563     /**
564      * When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in the manifest,
565      * which prevents clients from saving media segments for later replay.
566      */
WithClientCache(const HlsClientCache & value)567     inline HlsGroupSettings& WithClientCache(const HlsClientCache& value) { SetClientCache(value); return *this;}
568 
569     /**
570      * When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in the manifest,
571      * which prevents clients from saving media segments for later replay.
572      */
WithClientCache(HlsClientCache && value)573     inline HlsGroupSettings& WithClientCache(HlsClientCache&& value) { SetClientCache(std::move(value)); return *this;}
574 
575 
576     /**
577      * Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist
578      * generation.
579      */
GetCodecSpecification()580     inline const HlsCodecSpecification& GetCodecSpecification() const{ return m_codecSpecification; }
581 
582     /**
583      * Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist
584      * generation.
585      */
CodecSpecificationHasBeenSet()586     inline bool CodecSpecificationHasBeenSet() const { return m_codecSpecificationHasBeenSet; }
587 
588     /**
589      * Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist
590      * generation.
591      */
SetCodecSpecification(const HlsCodecSpecification & value)592     inline void SetCodecSpecification(const HlsCodecSpecification& value) { m_codecSpecificationHasBeenSet = true; m_codecSpecification = value; }
593 
594     /**
595      * Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist
596      * generation.
597      */
SetCodecSpecification(HlsCodecSpecification && value)598     inline void SetCodecSpecification(HlsCodecSpecification&& value) { m_codecSpecificationHasBeenSet = true; m_codecSpecification = std::move(value); }
599 
600     /**
601      * Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist
602      * generation.
603      */
WithCodecSpecification(const HlsCodecSpecification & value)604     inline HlsGroupSettings& WithCodecSpecification(const HlsCodecSpecification& value) { SetCodecSpecification(value); return *this;}
605 
606     /**
607      * Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist
608      * generation.
609      */
WithCodecSpecification(HlsCodecSpecification && value)610     inline HlsGroupSettings& WithCodecSpecification(HlsCodecSpecification&& value) { SetCodecSpecification(std::move(value)); return *this;}
611 
612 
613     /**
614      * For use with encryptionType. This is a 128-bit, 16-byte hex value represented by
615      * a 32-character text string. If ivSource is set to "explicit" then this parameter
616      * is required and is used as the IV for encryption.
617      */
GetConstantIv()618     inline const Aws::String& GetConstantIv() const{ return m_constantIv; }
619 
620     /**
621      * For use with encryptionType. This is a 128-bit, 16-byte hex value represented by
622      * a 32-character text string. If ivSource is set to "explicit" then this parameter
623      * is required and is used as the IV for encryption.
624      */
ConstantIvHasBeenSet()625     inline bool ConstantIvHasBeenSet() const { return m_constantIvHasBeenSet; }
626 
627     /**
628      * For use with encryptionType. This is a 128-bit, 16-byte hex value represented by
629      * a 32-character text string. If ivSource is set to "explicit" then this parameter
630      * is required and is used as the IV for encryption.
631      */
SetConstantIv(const Aws::String & value)632     inline void SetConstantIv(const Aws::String& value) { m_constantIvHasBeenSet = true; m_constantIv = value; }
633 
634     /**
635      * For use with encryptionType. This is a 128-bit, 16-byte hex value represented by
636      * a 32-character text string. If ivSource is set to "explicit" then this parameter
637      * is required and is used as the IV for encryption.
638      */
SetConstantIv(Aws::String && value)639     inline void SetConstantIv(Aws::String&& value) { m_constantIvHasBeenSet = true; m_constantIv = std::move(value); }
640 
641     /**
642      * For use with encryptionType. This is a 128-bit, 16-byte hex value represented by
643      * a 32-character text string. If ivSource is set to "explicit" then this parameter
644      * is required and is used as the IV for encryption.
645      */
SetConstantIv(const char * value)646     inline void SetConstantIv(const char* value) { m_constantIvHasBeenSet = true; m_constantIv.assign(value); }
647 
648     /**
649      * For use with encryptionType. This is a 128-bit, 16-byte hex value represented by
650      * a 32-character text string. If ivSource is set to "explicit" then this parameter
651      * is required and is used as the IV for encryption.
652      */
WithConstantIv(const Aws::String & value)653     inline HlsGroupSettings& WithConstantIv(const Aws::String& value) { SetConstantIv(value); return *this;}
654 
655     /**
656      * For use with encryptionType. This is a 128-bit, 16-byte hex value represented by
657      * a 32-character text string. If ivSource is set to "explicit" then this parameter
658      * is required and is used as the IV for encryption.
659      */
WithConstantIv(Aws::String && value)660     inline HlsGroupSettings& WithConstantIv(Aws::String&& value) { SetConstantIv(std::move(value)); return *this;}
661 
662     /**
663      * For use with encryptionType. This is a 128-bit, 16-byte hex value represented by
664      * a 32-character text string. If ivSource is set to "explicit" then this parameter
665      * is required and is used as the IV for encryption.
666      */
WithConstantIv(const char * value)667     inline HlsGroupSettings& WithConstantIv(const char* value) { SetConstantIv(value); return *this;}
668 
669 
670     /**
671      * A directory or HTTP destination for the HLS segments, manifest files, and
672      * encryption keys (if enabled).
673      */
GetDestination()674     inline const OutputLocationRef& GetDestination() const{ return m_destination; }
675 
676     /**
677      * A directory or HTTP destination for the HLS segments, manifest files, and
678      * encryption keys (if enabled).
679      */
DestinationHasBeenSet()680     inline bool DestinationHasBeenSet() const { return m_destinationHasBeenSet; }
681 
682     /**
683      * A directory or HTTP destination for the HLS segments, manifest files, and
684      * encryption keys (if enabled).
685      */
SetDestination(const OutputLocationRef & value)686     inline void SetDestination(const OutputLocationRef& value) { m_destinationHasBeenSet = true; m_destination = value; }
687 
688     /**
689      * A directory or HTTP destination for the HLS segments, manifest files, and
690      * encryption keys (if enabled).
691      */
SetDestination(OutputLocationRef && value)692     inline void SetDestination(OutputLocationRef&& value) { m_destinationHasBeenSet = true; m_destination = std::move(value); }
693 
694     /**
695      * A directory or HTTP destination for the HLS segments, manifest files, and
696      * encryption keys (if enabled).
697      */
WithDestination(const OutputLocationRef & value)698     inline HlsGroupSettings& WithDestination(const OutputLocationRef& value) { SetDestination(value); return *this;}
699 
700     /**
701      * A directory or HTTP destination for the HLS segments, manifest files, and
702      * encryption keys (if enabled).
703      */
WithDestination(OutputLocationRef && value)704     inline HlsGroupSettings& WithDestination(OutputLocationRef&& value) { SetDestination(std::move(value)); return *this;}
705 
706 
707     /**
708      * Place segments in subdirectories.
709      */
GetDirectoryStructure()710     inline const HlsDirectoryStructure& GetDirectoryStructure() const{ return m_directoryStructure; }
711 
712     /**
713      * Place segments in subdirectories.
714      */
DirectoryStructureHasBeenSet()715     inline bool DirectoryStructureHasBeenSet() const { return m_directoryStructureHasBeenSet; }
716 
717     /**
718      * Place segments in subdirectories.
719      */
SetDirectoryStructure(const HlsDirectoryStructure & value)720     inline void SetDirectoryStructure(const HlsDirectoryStructure& value) { m_directoryStructureHasBeenSet = true; m_directoryStructure = value; }
721 
722     /**
723      * Place segments in subdirectories.
724      */
SetDirectoryStructure(HlsDirectoryStructure && value)725     inline void SetDirectoryStructure(HlsDirectoryStructure&& value) { m_directoryStructureHasBeenSet = true; m_directoryStructure = std::move(value); }
726 
727     /**
728      * Place segments in subdirectories.
729      */
WithDirectoryStructure(const HlsDirectoryStructure & value)730     inline HlsGroupSettings& WithDirectoryStructure(const HlsDirectoryStructure& value) { SetDirectoryStructure(value); return *this;}
731 
732     /**
733      * Place segments in subdirectories.
734      */
WithDirectoryStructure(HlsDirectoryStructure && value)735     inline HlsGroupSettings& WithDirectoryStructure(HlsDirectoryStructure&& value) { SetDirectoryStructure(std::move(value)); return *this;}
736 
737 
738     /**
739      * Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child manifests
740      * for this output group.
741 Typically, choose Insert because these tags are required
742      * in the manifest (according to the HLS specification) and serve an important
743      * purpose.
744 Choose Never Insert only if the downstream system is doing real-time
745      * failover (without using the MediaLive automatic failover feature) and only if
746      * that downstream system has advised you to exclude the tags.
747      */
GetDiscontinuityTags()748     inline const HlsDiscontinuityTags& GetDiscontinuityTags() const{ return m_discontinuityTags; }
749 
750     /**
751      * Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child manifests
752      * for this output group.
753 Typically, choose Insert because these tags are required
754      * in the manifest (according to the HLS specification) and serve an important
755      * purpose.
756 Choose Never Insert only if the downstream system is doing real-time
757      * failover (without using the MediaLive automatic failover feature) and only if
758      * that downstream system has advised you to exclude the tags.
759      */
DiscontinuityTagsHasBeenSet()760     inline bool DiscontinuityTagsHasBeenSet() const { return m_discontinuityTagsHasBeenSet; }
761 
762     /**
763      * Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child manifests
764      * for this output group.
765 Typically, choose Insert because these tags are required
766      * in the manifest (according to the HLS specification) and serve an important
767      * purpose.
768 Choose Never Insert only if the downstream system is doing real-time
769      * failover (without using the MediaLive automatic failover feature) and only if
770      * that downstream system has advised you to exclude the tags.
771      */
SetDiscontinuityTags(const HlsDiscontinuityTags & value)772     inline void SetDiscontinuityTags(const HlsDiscontinuityTags& value) { m_discontinuityTagsHasBeenSet = true; m_discontinuityTags = value; }
773 
774     /**
775      * Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child manifests
776      * for this output group.
777 Typically, choose Insert because these tags are required
778      * in the manifest (according to the HLS specification) and serve an important
779      * purpose.
780 Choose Never Insert only if the downstream system is doing real-time
781      * failover (without using the MediaLive automatic failover feature) and only if
782      * that downstream system has advised you to exclude the tags.
783      */
SetDiscontinuityTags(HlsDiscontinuityTags && value)784     inline void SetDiscontinuityTags(HlsDiscontinuityTags&& value) { m_discontinuityTagsHasBeenSet = true; m_discontinuityTags = std::move(value); }
785 
786     /**
787      * Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child manifests
788      * for this output group.
789 Typically, choose Insert because these tags are required
790      * in the manifest (according to the HLS specification) and serve an important
791      * purpose.
792 Choose Never Insert only if the downstream system is doing real-time
793      * failover (without using the MediaLive automatic failover feature) and only if
794      * that downstream system has advised you to exclude the tags.
795      */
WithDiscontinuityTags(const HlsDiscontinuityTags & value)796     inline HlsGroupSettings& WithDiscontinuityTags(const HlsDiscontinuityTags& value) { SetDiscontinuityTags(value); return *this;}
797 
798     /**
799      * Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child manifests
800      * for this output group.
801 Typically, choose Insert because these tags are required
802      * in the manifest (according to the HLS specification) and serve an important
803      * purpose.
804 Choose Never Insert only if the downstream system is doing real-time
805      * failover (without using the MediaLive automatic failover feature) and only if
806      * that downstream system has advised you to exclude the tags.
807      */
WithDiscontinuityTags(HlsDiscontinuityTags && value)808     inline HlsGroupSettings& WithDiscontinuityTags(HlsDiscontinuityTags&& value) { SetDiscontinuityTags(std::move(value)); return *this;}
809 
810 
811     /**
812      * Encrypts the segments with the given encryption scheme.  Exclude this parameter
813      * if no encryption is desired.
814      */
GetEncryptionType()815     inline const HlsEncryptionType& GetEncryptionType() const{ return m_encryptionType; }
816 
817     /**
818      * Encrypts the segments with the given encryption scheme.  Exclude this parameter
819      * if no encryption is desired.
820      */
EncryptionTypeHasBeenSet()821     inline bool EncryptionTypeHasBeenSet() const { return m_encryptionTypeHasBeenSet; }
822 
823     /**
824      * Encrypts the segments with the given encryption scheme.  Exclude this parameter
825      * if no encryption is desired.
826      */
SetEncryptionType(const HlsEncryptionType & value)827     inline void SetEncryptionType(const HlsEncryptionType& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = value; }
828 
829     /**
830      * Encrypts the segments with the given encryption scheme.  Exclude this parameter
831      * if no encryption is desired.
832      */
SetEncryptionType(HlsEncryptionType && value)833     inline void SetEncryptionType(HlsEncryptionType&& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = std::move(value); }
834 
835     /**
836      * Encrypts the segments with the given encryption scheme.  Exclude this parameter
837      * if no encryption is desired.
838      */
WithEncryptionType(const HlsEncryptionType & value)839     inline HlsGroupSettings& WithEncryptionType(const HlsEncryptionType& value) { SetEncryptionType(value); return *this;}
840 
841     /**
842      * Encrypts the segments with the given encryption scheme.  Exclude this parameter
843      * if no encryption is desired.
844      */
WithEncryptionType(HlsEncryptionType && value)845     inline HlsGroupSettings& WithEncryptionType(HlsEncryptionType&& value) { SetEncryptionType(std::move(value)); return *this;}
846 
847 
848     /**
849      * Parameters that control interactions with the CDN.
850      */
GetHlsCdnSettings()851     inline const HlsCdnSettings& GetHlsCdnSettings() const{ return m_hlsCdnSettings; }
852 
853     /**
854      * Parameters that control interactions with the CDN.
855      */
HlsCdnSettingsHasBeenSet()856     inline bool HlsCdnSettingsHasBeenSet() const { return m_hlsCdnSettingsHasBeenSet; }
857 
858     /**
859      * Parameters that control interactions with the CDN.
860      */
SetHlsCdnSettings(const HlsCdnSettings & value)861     inline void SetHlsCdnSettings(const HlsCdnSettings& value) { m_hlsCdnSettingsHasBeenSet = true; m_hlsCdnSettings = value; }
862 
863     /**
864      * Parameters that control interactions with the CDN.
865      */
SetHlsCdnSettings(HlsCdnSettings && value)866     inline void SetHlsCdnSettings(HlsCdnSettings&& value) { m_hlsCdnSettingsHasBeenSet = true; m_hlsCdnSettings = std::move(value); }
867 
868     /**
869      * Parameters that control interactions with the CDN.
870      */
WithHlsCdnSettings(const HlsCdnSettings & value)871     inline HlsGroupSettings& WithHlsCdnSettings(const HlsCdnSettings& value) { SetHlsCdnSettings(value); return *this;}
872 
873     /**
874      * Parameters that control interactions with the CDN.
875      */
WithHlsCdnSettings(HlsCdnSettings && value)876     inline HlsGroupSettings& WithHlsCdnSettings(HlsCdnSettings&& value) { SetHlsCdnSettings(std::move(value)); return *this;}
877 
878 
879     /**
880      * State of HLS ID3 Segment Tagging
881      */
GetHlsId3SegmentTagging()882     inline const HlsId3SegmentTaggingState& GetHlsId3SegmentTagging() const{ return m_hlsId3SegmentTagging; }
883 
884     /**
885      * State of HLS ID3 Segment Tagging
886      */
HlsId3SegmentTaggingHasBeenSet()887     inline bool HlsId3SegmentTaggingHasBeenSet() const { return m_hlsId3SegmentTaggingHasBeenSet; }
888 
889     /**
890      * State of HLS ID3 Segment Tagging
891      */
SetHlsId3SegmentTagging(const HlsId3SegmentTaggingState & value)892     inline void SetHlsId3SegmentTagging(const HlsId3SegmentTaggingState& value) { m_hlsId3SegmentTaggingHasBeenSet = true; m_hlsId3SegmentTagging = value; }
893 
894     /**
895      * State of HLS ID3 Segment Tagging
896      */
SetHlsId3SegmentTagging(HlsId3SegmentTaggingState && value)897     inline void SetHlsId3SegmentTagging(HlsId3SegmentTaggingState&& value) { m_hlsId3SegmentTaggingHasBeenSet = true; m_hlsId3SegmentTagging = std::move(value); }
898 
899     /**
900      * State of HLS ID3 Segment Tagging
901      */
WithHlsId3SegmentTagging(const HlsId3SegmentTaggingState & value)902     inline HlsGroupSettings& WithHlsId3SegmentTagging(const HlsId3SegmentTaggingState& value) { SetHlsId3SegmentTagging(value); return *this;}
903 
904     /**
905      * State of HLS ID3 Segment Tagging
906      */
WithHlsId3SegmentTagging(HlsId3SegmentTaggingState && value)907     inline HlsGroupSettings& WithHlsId3SegmentTagging(HlsId3SegmentTaggingState&& value) { SetHlsId3SegmentTagging(std::move(value)); return *this;}
908 
909 
910     /**
911      * DISABLED: Do not create an I-frame-only manifest, but do create the master and
912      * media manifests (according to the Output Selection field).
913 
914 STANDARD: Create an
915      * I-frame-only manifest for each output that contains video, as well as the other
916      * manifests (according to the Output Selection field). The I-frame manifest
917      * contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or
918      * more #EXT-X-BYTERANGE entries identifying the I-frame position. For example,
919      * #EXT-X-BYTERANGE:160364@1461888"
920      */
GetIFrameOnlyPlaylists()921     inline const IFrameOnlyPlaylistType& GetIFrameOnlyPlaylists() const{ return m_iFrameOnlyPlaylists; }
922 
923     /**
924      * DISABLED: Do not create an I-frame-only manifest, but do create the master and
925      * media manifests (according to the Output Selection field).
926 
927 STANDARD: Create an
928      * I-frame-only manifest for each output that contains video, as well as the other
929      * manifests (according to the Output Selection field). The I-frame manifest
930      * contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or
931      * more #EXT-X-BYTERANGE entries identifying the I-frame position. For example,
932      * #EXT-X-BYTERANGE:160364@1461888"
933      */
IFrameOnlyPlaylistsHasBeenSet()934     inline bool IFrameOnlyPlaylistsHasBeenSet() const { return m_iFrameOnlyPlaylistsHasBeenSet; }
935 
936     /**
937      * DISABLED: Do not create an I-frame-only manifest, but do create the master and
938      * media manifests (according to the Output Selection field).
939 
940 STANDARD: Create an
941      * I-frame-only manifest for each output that contains video, as well as the other
942      * manifests (according to the Output Selection field). The I-frame manifest
943      * contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or
944      * more #EXT-X-BYTERANGE entries identifying the I-frame position. For example,
945      * #EXT-X-BYTERANGE:160364@1461888"
946      */
SetIFrameOnlyPlaylists(const IFrameOnlyPlaylistType & value)947     inline void SetIFrameOnlyPlaylists(const IFrameOnlyPlaylistType& value) { m_iFrameOnlyPlaylistsHasBeenSet = true; m_iFrameOnlyPlaylists = value; }
948 
949     /**
950      * DISABLED: Do not create an I-frame-only manifest, but do create the master and
951      * media manifests (according to the Output Selection field).
952 
953 STANDARD: Create an
954      * I-frame-only manifest for each output that contains video, as well as the other
955      * manifests (according to the Output Selection field). The I-frame manifest
956      * contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or
957      * more #EXT-X-BYTERANGE entries identifying the I-frame position. For example,
958      * #EXT-X-BYTERANGE:160364@1461888"
959      */
SetIFrameOnlyPlaylists(IFrameOnlyPlaylistType && value)960     inline void SetIFrameOnlyPlaylists(IFrameOnlyPlaylistType&& value) { m_iFrameOnlyPlaylistsHasBeenSet = true; m_iFrameOnlyPlaylists = std::move(value); }
961 
962     /**
963      * DISABLED: Do not create an I-frame-only manifest, but do create the master and
964      * media manifests (according to the Output Selection field).
965 
966 STANDARD: Create an
967      * I-frame-only manifest for each output that contains video, as well as the other
968      * manifests (according to the Output Selection field). The I-frame manifest
969      * contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or
970      * more #EXT-X-BYTERANGE entries identifying the I-frame position. For example,
971      * #EXT-X-BYTERANGE:160364@1461888"
972      */
WithIFrameOnlyPlaylists(const IFrameOnlyPlaylistType & value)973     inline HlsGroupSettings& WithIFrameOnlyPlaylists(const IFrameOnlyPlaylistType& value) { SetIFrameOnlyPlaylists(value); return *this;}
974 
975     /**
976      * DISABLED: Do not create an I-frame-only manifest, but do create the master and
977      * media manifests (according to the Output Selection field).
978 
979 STANDARD: Create an
980      * I-frame-only manifest for each output that contains video, as well as the other
981      * manifests (according to the Output Selection field). The I-frame manifest
982      * contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or
983      * more #EXT-X-BYTERANGE entries identifying the I-frame position. For example,
984      * #EXT-X-BYTERANGE:160364@1461888"
985      */
WithIFrameOnlyPlaylists(IFrameOnlyPlaylistType && value)986     inline HlsGroupSettings& WithIFrameOnlyPlaylists(IFrameOnlyPlaylistType&& value) { SetIFrameOnlyPlaylists(std::move(value)); return *this;}
987 
988 
989     /**
990      * Specifies whether to include the final (incomplete) segment in the media output
991      * when the pipeline stops producing output because of a channel stop, a channel
992      * pause or a loss of input to the pipeline.
993 Auto means that MediaLive decides
994      * whether to include the final segment, depending on the channel class and the
995      * types of output groups.
996 Suppress means to never include the incomplete segment.
997      * We recommend you choose Auto and let MediaLive control the behavior.
998      */
GetIncompleteSegmentBehavior()999     inline const HlsIncompleteSegmentBehavior& GetIncompleteSegmentBehavior() const{ return m_incompleteSegmentBehavior; }
1000 
1001     /**
1002      * Specifies whether to include the final (incomplete) segment in the media output
1003      * when the pipeline stops producing output because of a channel stop, a channel
1004      * pause or a loss of input to the pipeline.
1005 Auto means that MediaLive decides
1006      * whether to include the final segment, depending on the channel class and the
1007      * types of output groups.
1008 Suppress means to never include the incomplete segment.
1009      * We recommend you choose Auto and let MediaLive control the behavior.
1010      */
IncompleteSegmentBehaviorHasBeenSet()1011     inline bool IncompleteSegmentBehaviorHasBeenSet() const { return m_incompleteSegmentBehaviorHasBeenSet; }
1012 
1013     /**
1014      * Specifies whether to include the final (incomplete) segment in the media output
1015      * when the pipeline stops producing output because of a channel stop, a channel
1016      * pause or a loss of input to the pipeline.
1017 Auto means that MediaLive decides
1018      * whether to include the final segment, depending on the channel class and the
1019      * types of output groups.
1020 Suppress means to never include the incomplete segment.
1021      * We recommend you choose Auto and let MediaLive control the behavior.
1022      */
SetIncompleteSegmentBehavior(const HlsIncompleteSegmentBehavior & value)1023     inline void SetIncompleteSegmentBehavior(const HlsIncompleteSegmentBehavior& value) { m_incompleteSegmentBehaviorHasBeenSet = true; m_incompleteSegmentBehavior = value; }
1024 
1025     /**
1026      * Specifies whether to include the final (incomplete) segment in the media output
1027      * when the pipeline stops producing output because of a channel stop, a channel
1028      * pause or a loss of input to the pipeline.
1029 Auto means that MediaLive decides
1030      * whether to include the final segment, depending on the channel class and the
1031      * types of output groups.
1032 Suppress means to never include the incomplete segment.
1033      * We recommend you choose Auto and let MediaLive control the behavior.
1034      */
SetIncompleteSegmentBehavior(HlsIncompleteSegmentBehavior && value)1035     inline void SetIncompleteSegmentBehavior(HlsIncompleteSegmentBehavior&& value) { m_incompleteSegmentBehaviorHasBeenSet = true; m_incompleteSegmentBehavior = std::move(value); }
1036 
1037     /**
1038      * Specifies whether to include the final (incomplete) segment in the media output
1039      * when the pipeline stops producing output because of a channel stop, a channel
1040      * pause or a loss of input to the pipeline.
1041 Auto means that MediaLive decides
1042      * whether to include the final segment, depending on the channel class and the
1043      * types of output groups.
1044 Suppress means to never include the incomplete segment.
1045      * We recommend you choose Auto and let MediaLive control the behavior.
1046      */
WithIncompleteSegmentBehavior(const HlsIncompleteSegmentBehavior & value)1047     inline HlsGroupSettings& WithIncompleteSegmentBehavior(const HlsIncompleteSegmentBehavior& value) { SetIncompleteSegmentBehavior(value); return *this;}
1048 
1049     /**
1050      * Specifies whether to include the final (incomplete) segment in the media output
1051      * when the pipeline stops producing output because of a channel stop, a channel
1052      * pause or a loss of input to the pipeline.
1053 Auto means that MediaLive decides
1054      * whether to include the final segment, depending on the channel class and the
1055      * types of output groups.
1056 Suppress means to never include the incomplete segment.
1057      * We recommend you choose Auto and let MediaLive control the behavior.
1058      */
WithIncompleteSegmentBehavior(HlsIncompleteSegmentBehavior && value)1059     inline HlsGroupSettings& WithIncompleteSegmentBehavior(HlsIncompleteSegmentBehavior&& value) { SetIncompleteSegmentBehavior(std::move(value)); return *this;}
1060 
1061 
1062     /**
1063      * Applies only if Mode field is LIVE.
1064 
1065 Specifies the maximum number of segments in
1066      * the media manifest file. After this maximum, older segments are removed from the
1067      * media manifest. This number must be smaller than the number in the Keep Segments
1068      * field.
1069      */
GetIndexNSegments()1070     inline int GetIndexNSegments() const{ return m_indexNSegments; }
1071 
1072     /**
1073      * Applies only if Mode field is LIVE.
1074 
1075 Specifies the maximum number of segments in
1076      * the media manifest file. After this maximum, older segments are removed from the
1077      * media manifest. This number must be smaller than the number in the Keep Segments
1078      * field.
1079      */
IndexNSegmentsHasBeenSet()1080     inline bool IndexNSegmentsHasBeenSet() const { return m_indexNSegmentsHasBeenSet; }
1081 
1082     /**
1083      * Applies only if Mode field is LIVE.
1084 
1085 Specifies the maximum number of segments in
1086      * the media manifest file. After this maximum, older segments are removed from the
1087      * media manifest. This number must be smaller than the number in the Keep Segments
1088      * field.
1089      */
SetIndexNSegments(int value)1090     inline void SetIndexNSegments(int value) { m_indexNSegmentsHasBeenSet = true; m_indexNSegments = value; }
1091 
1092     /**
1093      * Applies only if Mode field is LIVE.
1094 
1095 Specifies the maximum number of segments in
1096      * the media manifest file. After this maximum, older segments are removed from the
1097      * media manifest. This number must be smaller than the number in the Keep Segments
1098      * field.
1099      */
WithIndexNSegments(int value)1100     inline HlsGroupSettings& WithIndexNSegments(int value) { SetIndexNSegments(value); return *this;}
1101 
1102 
1103     /**
1104      * Parameter that control output group behavior on input loss.
1105      */
GetInputLossAction()1106     inline const InputLossActionForHlsOut& GetInputLossAction() const{ return m_inputLossAction; }
1107 
1108     /**
1109      * Parameter that control output group behavior on input loss.
1110      */
InputLossActionHasBeenSet()1111     inline bool InputLossActionHasBeenSet() const { return m_inputLossActionHasBeenSet; }
1112 
1113     /**
1114      * Parameter that control output group behavior on input loss.
1115      */
SetInputLossAction(const InputLossActionForHlsOut & value)1116     inline void SetInputLossAction(const InputLossActionForHlsOut& value) { m_inputLossActionHasBeenSet = true; m_inputLossAction = value; }
1117 
1118     /**
1119      * Parameter that control output group behavior on input loss.
1120      */
SetInputLossAction(InputLossActionForHlsOut && value)1121     inline void SetInputLossAction(InputLossActionForHlsOut&& value) { m_inputLossActionHasBeenSet = true; m_inputLossAction = std::move(value); }
1122 
1123     /**
1124      * Parameter that control output group behavior on input loss.
1125      */
WithInputLossAction(const InputLossActionForHlsOut & value)1126     inline HlsGroupSettings& WithInputLossAction(const InputLossActionForHlsOut& value) { SetInputLossAction(value); return *this;}
1127 
1128     /**
1129      * Parameter that control output group behavior on input loss.
1130      */
WithInputLossAction(InputLossActionForHlsOut && value)1131     inline HlsGroupSettings& WithInputLossAction(InputLossActionForHlsOut&& value) { SetInputLossAction(std::move(value)); return *this;}
1132 
1133 
1134     /**
1135      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1136      * used in conjunction with the key for encrypting blocks. If set to "include", IV
1137      * is listed in the manifest, otherwise the IV is not in the manifest.
1138      */
GetIvInManifest()1139     inline const HlsIvInManifest& GetIvInManifest() const{ return m_ivInManifest; }
1140 
1141     /**
1142      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1143      * used in conjunction with the key for encrypting blocks. If set to "include", IV
1144      * is listed in the manifest, otherwise the IV is not in the manifest.
1145      */
IvInManifestHasBeenSet()1146     inline bool IvInManifestHasBeenSet() const { return m_ivInManifestHasBeenSet; }
1147 
1148     /**
1149      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1150      * used in conjunction with the key for encrypting blocks. If set to "include", IV
1151      * is listed in the manifest, otherwise the IV is not in the manifest.
1152      */
SetIvInManifest(const HlsIvInManifest & value)1153     inline void SetIvInManifest(const HlsIvInManifest& value) { m_ivInManifestHasBeenSet = true; m_ivInManifest = value; }
1154 
1155     /**
1156      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1157      * used in conjunction with the key for encrypting blocks. If set to "include", IV
1158      * is listed in the manifest, otherwise the IV is not in the manifest.
1159      */
SetIvInManifest(HlsIvInManifest && value)1160     inline void SetIvInManifest(HlsIvInManifest&& value) { m_ivInManifestHasBeenSet = true; m_ivInManifest = std::move(value); }
1161 
1162     /**
1163      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1164      * used in conjunction with the key for encrypting blocks. If set to "include", IV
1165      * is listed in the manifest, otherwise the IV is not in the manifest.
1166      */
WithIvInManifest(const HlsIvInManifest & value)1167     inline HlsGroupSettings& WithIvInManifest(const HlsIvInManifest& value) { SetIvInManifest(value); return *this;}
1168 
1169     /**
1170      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1171      * used in conjunction with the key for encrypting blocks. If set to "include", IV
1172      * is listed in the manifest, otherwise the IV is not in the manifest.
1173      */
WithIvInManifest(HlsIvInManifest && value)1174     inline HlsGroupSettings& WithIvInManifest(HlsIvInManifest&& value) { SetIvInManifest(std::move(value)); return *this;}
1175 
1176 
1177     /**
1178      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1179      * used in conjunction with the key for encrypting blocks. If this setting is
1180      * "followsSegmentNumber", it will cause the IV to change every segment (to match
1181      * the segment number). If this is set to "explicit", you must enter a constantIv
1182      * value.
1183      */
GetIvSource()1184     inline const HlsIvSource& GetIvSource() const{ return m_ivSource; }
1185 
1186     /**
1187      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1188      * used in conjunction with the key for encrypting blocks. If this setting is
1189      * "followsSegmentNumber", it will cause the IV to change every segment (to match
1190      * the segment number). If this is set to "explicit", you must enter a constantIv
1191      * value.
1192      */
IvSourceHasBeenSet()1193     inline bool IvSourceHasBeenSet() const { return m_ivSourceHasBeenSet; }
1194 
1195     /**
1196      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1197      * used in conjunction with the key for encrypting blocks. If this setting is
1198      * "followsSegmentNumber", it will cause the IV to change every segment (to match
1199      * the segment number). If this is set to "explicit", you must enter a constantIv
1200      * value.
1201      */
SetIvSource(const HlsIvSource & value)1202     inline void SetIvSource(const HlsIvSource& value) { m_ivSourceHasBeenSet = true; m_ivSource = value; }
1203 
1204     /**
1205      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1206      * used in conjunction with the key for encrypting blocks. If this setting is
1207      * "followsSegmentNumber", it will cause the IV to change every segment (to match
1208      * the segment number). If this is set to "explicit", you must enter a constantIv
1209      * value.
1210      */
SetIvSource(HlsIvSource && value)1211     inline void SetIvSource(HlsIvSource&& value) { m_ivSourceHasBeenSet = true; m_ivSource = std::move(value); }
1212 
1213     /**
1214      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1215      * used in conjunction with the key for encrypting blocks. If this setting is
1216      * "followsSegmentNumber", it will cause the IV to change every segment (to match
1217      * the segment number). If this is set to "explicit", you must enter a constantIv
1218      * value.
1219      */
WithIvSource(const HlsIvSource & value)1220     inline HlsGroupSettings& WithIvSource(const HlsIvSource& value) { SetIvSource(value); return *this;}
1221 
1222     /**
1223      * For use with encryptionType. The IV (Initialization Vector) is a 128-bit number
1224      * used in conjunction with the key for encrypting blocks. If this setting is
1225      * "followsSegmentNumber", it will cause the IV to change every segment (to match
1226      * the segment number). If this is set to "explicit", you must enter a constantIv
1227      * value.
1228      */
WithIvSource(HlsIvSource && value)1229     inline HlsGroupSettings& WithIvSource(HlsIvSource&& value) { SetIvSource(std::move(value)); return *this;}
1230 
1231 
1232     /**
1233      * Applies only if Mode field is LIVE.
1234 
1235 Specifies the number of media segments to
1236      * retain in the destination directory. This number should be bigger than
1237      * indexNSegments (Num segments). We recommend (value = (2 x indexNsegments) +
1238      * 1).
1239 
1240 If this "keep segments" number is too low, the following might happen: the
1241      * player is still reading a media manifest file that lists this segment, but that
1242      * segment has been removed from the destination directory (as directed by
1243      * indexNSegments). This situation would result in a 404 HTTP error on the player.
1244      */
GetKeepSegments()1245     inline int GetKeepSegments() const{ return m_keepSegments; }
1246 
1247     /**
1248      * Applies only if Mode field is LIVE.
1249 
1250 Specifies the number of media segments to
1251      * retain in the destination directory. This number should be bigger than
1252      * indexNSegments (Num segments). We recommend (value = (2 x indexNsegments) +
1253      * 1).
1254 
1255 If this "keep segments" number is too low, the following might happen: the
1256      * player is still reading a media manifest file that lists this segment, but that
1257      * segment has been removed from the destination directory (as directed by
1258      * indexNSegments). This situation would result in a 404 HTTP error on the player.
1259      */
KeepSegmentsHasBeenSet()1260     inline bool KeepSegmentsHasBeenSet() const { return m_keepSegmentsHasBeenSet; }
1261 
1262     /**
1263      * Applies only if Mode field is LIVE.
1264 
1265 Specifies the number of media segments to
1266      * retain in the destination directory. This number should be bigger than
1267      * indexNSegments (Num segments). We recommend (value = (2 x indexNsegments) +
1268      * 1).
1269 
1270 If this "keep segments" number is too low, the following might happen: the
1271      * player is still reading a media manifest file that lists this segment, but that
1272      * segment has been removed from the destination directory (as directed by
1273      * indexNSegments). This situation would result in a 404 HTTP error on the player.
1274      */
SetKeepSegments(int value)1275     inline void SetKeepSegments(int value) { m_keepSegmentsHasBeenSet = true; m_keepSegments = value; }
1276 
1277     /**
1278      * Applies only if Mode field is LIVE.
1279 
1280 Specifies the number of media segments to
1281      * retain in the destination directory. This number should be bigger than
1282      * indexNSegments (Num segments). We recommend (value = (2 x indexNsegments) +
1283      * 1).
1284 
1285 If this "keep segments" number is too low, the following might happen: the
1286      * player is still reading a media manifest file that lists this segment, but that
1287      * segment has been removed from the destination directory (as directed by
1288      * indexNSegments). This situation would result in a 404 HTTP error on the player.
1289      */
WithKeepSegments(int value)1290     inline HlsGroupSettings& WithKeepSegments(int value) { SetKeepSegments(value); return *this;}
1291 
1292 
1293     /**
1294      * The value specifies how the key is represented in the resource identified by the
1295      * URI.  If parameter is absent, an implicit value of "identity" is used.  A
1296      * reverse DNS string can also be given.
1297      */
GetKeyFormat()1298     inline const Aws::String& GetKeyFormat() const{ return m_keyFormat; }
1299 
1300     /**
1301      * The value specifies how the key is represented in the resource identified by the
1302      * URI.  If parameter is absent, an implicit value of "identity" is used.  A
1303      * reverse DNS string can also be given.
1304      */
KeyFormatHasBeenSet()1305     inline bool KeyFormatHasBeenSet() const { return m_keyFormatHasBeenSet; }
1306 
1307     /**
1308      * The value specifies how the key is represented in the resource identified by the
1309      * URI.  If parameter is absent, an implicit value of "identity" is used.  A
1310      * reverse DNS string can also be given.
1311      */
SetKeyFormat(const Aws::String & value)1312     inline void SetKeyFormat(const Aws::String& value) { m_keyFormatHasBeenSet = true; m_keyFormat = value; }
1313 
1314     /**
1315      * The value specifies how the key is represented in the resource identified by the
1316      * URI.  If parameter is absent, an implicit value of "identity" is used.  A
1317      * reverse DNS string can also be given.
1318      */
SetKeyFormat(Aws::String && value)1319     inline void SetKeyFormat(Aws::String&& value) { m_keyFormatHasBeenSet = true; m_keyFormat = std::move(value); }
1320 
1321     /**
1322      * The value specifies how the key is represented in the resource identified by the
1323      * URI.  If parameter is absent, an implicit value of "identity" is used.  A
1324      * reverse DNS string can also be given.
1325      */
SetKeyFormat(const char * value)1326     inline void SetKeyFormat(const char* value) { m_keyFormatHasBeenSet = true; m_keyFormat.assign(value); }
1327 
1328     /**
1329      * The value specifies how the key is represented in the resource identified by the
1330      * URI.  If parameter is absent, an implicit value of "identity" is used.  A
1331      * reverse DNS string can also be given.
1332      */
WithKeyFormat(const Aws::String & value)1333     inline HlsGroupSettings& WithKeyFormat(const Aws::String& value) { SetKeyFormat(value); return *this;}
1334 
1335     /**
1336      * The value specifies how the key is represented in the resource identified by the
1337      * URI.  If parameter is absent, an implicit value of "identity" is used.  A
1338      * reverse DNS string can also be given.
1339      */
WithKeyFormat(Aws::String && value)1340     inline HlsGroupSettings& WithKeyFormat(Aws::String&& value) { SetKeyFormat(std::move(value)); return *this;}
1341 
1342     /**
1343      * The value specifies how the key is represented in the resource identified by the
1344      * URI.  If parameter is absent, an implicit value of "identity" is used.  A
1345      * reverse DNS string can also be given.
1346      */
WithKeyFormat(const char * value)1347     inline HlsGroupSettings& WithKeyFormat(const char* value) { SetKeyFormat(value); return *this;}
1348 
1349 
1350     /**
1351      * Either a single positive integer version value or a slash delimited list of
1352      * version values (1/2/3).
1353      */
GetKeyFormatVersions()1354     inline const Aws::String& GetKeyFormatVersions() const{ return m_keyFormatVersions; }
1355 
1356     /**
1357      * Either a single positive integer version value or a slash delimited list of
1358      * version values (1/2/3).
1359      */
KeyFormatVersionsHasBeenSet()1360     inline bool KeyFormatVersionsHasBeenSet() const { return m_keyFormatVersionsHasBeenSet; }
1361 
1362     /**
1363      * Either a single positive integer version value or a slash delimited list of
1364      * version values (1/2/3).
1365      */
SetKeyFormatVersions(const Aws::String & value)1366     inline void SetKeyFormatVersions(const Aws::String& value) { m_keyFormatVersionsHasBeenSet = true; m_keyFormatVersions = value; }
1367 
1368     /**
1369      * Either a single positive integer version value or a slash delimited list of
1370      * version values (1/2/3).
1371      */
SetKeyFormatVersions(Aws::String && value)1372     inline void SetKeyFormatVersions(Aws::String&& value) { m_keyFormatVersionsHasBeenSet = true; m_keyFormatVersions = std::move(value); }
1373 
1374     /**
1375      * Either a single positive integer version value or a slash delimited list of
1376      * version values (1/2/3).
1377      */
SetKeyFormatVersions(const char * value)1378     inline void SetKeyFormatVersions(const char* value) { m_keyFormatVersionsHasBeenSet = true; m_keyFormatVersions.assign(value); }
1379 
1380     /**
1381      * Either a single positive integer version value or a slash delimited list of
1382      * version values (1/2/3).
1383      */
WithKeyFormatVersions(const Aws::String & value)1384     inline HlsGroupSettings& WithKeyFormatVersions(const Aws::String& value) { SetKeyFormatVersions(value); return *this;}
1385 
1386     /**
1387      * Either a single positive integer version value or a slash delimited list of
1388      * version values (1/2/3).
1389      */
WithKeyFormatVersions(Aws::String && value)1390     inline HlsGroupSettings& WithKeyFormatVersions(Aws::String&& value) { SetKeyFormatVersions(std::move(value)); return *this;}
1391 
1392     /**
1393      * Either a single positive integer version value or a slash delimited list of
1394      * version values (1/2/3).
1395      */
WithKeyFormatVersions(const char * value)1396     inline HlsGroupSettings& WithKeyFormatVersions(const char* value) { SetKeyFormatVersions(value); return *this;}
1397 
1398 
1399     /**
1400      * The key provider settings.
1401      */
GetKeyProviderSettings()1402     inline const KeyProviderSettings& GetKeyProviderSettings() const{ return m_keyProviderSettings; }
1403 
1404     /**
1405      * The key provider settings.
1406      */
KeyProviderSettingsHasBeenSet()1407     inline bool KeyProviderSettingsHasBeenSet() const { return m_keyProviderSettingsHasBeenSet; }
1408 
1409     /**
1410      * The key provider settings.
1411      */
SetKeyProviderSettings(const KeyProviderSettings & value)1412     inline void SetKeyProviderSettings(const KeyProviderSettings& value) { m_keyProviderSettingsHasBeenSet = true; m_keyProviderSettings = value; }
1413 
1414     /**
1415      * The key provider settings.
1416      */
SetKeyProviderSettings(KeyProviderSettings && value)1417     inline void SetKeyProviderSettings(KeyProviderSettings&& value) { m_keyProviderSettingsHasBeenSet = true; m_keyProviderSettings = std::move(value); }
1418 
1419     /**
1420      * The key provider settings.
1421      */
WithKeyProviderSettings(const KeyProviderSettings & value)1422     inline HlsGroupSettings& WithKeyProviderSettings(const KeyProviderSettings& value) { SetKeyProviderSettings(value); return *this;}
1423 
1424     /**
1425      * The key provider settings.
1426      */
WithKeyProviderSettings(KeyProviderSettings && value)1427     inline HlsGroupSettings& WithKeyProviderSettings(KeyProviderSettings&& value) { SetKeyProviderSettings(std::move(value)); return *this;}
1428 
1429 
1430     /**
1431      * When set to gzip, compresses HLS playlist.
1432      */
GetManifestCompression()1433     inline const HlsManifestCompression& GetManifestCompression() const{ return m_manifestCompression; }
1434 
1435     /**
1436      * When set to gzip, compresses HLS playlist.
1437      */
ManifestCompressionHasBeenSet()1438     inline bool ManifestCompressionHasBeenSet() const { return m_manifestCompressionHasBeenSet; }
1439 
1440     /**
1441      * When set to gzip, compresses HLS playlist.
1442      */
SetManifestCompression(const HlsManifestCompression & value)1443     inline void SetManifestCompression(const HlsManifestCompression& value) { m_manifestCompressionHasBeenSet = true; m_manifestCompression = value; }
1444 
1445     /**
1446      * When set to gzip, compresses HLS playlist.
1447      */
SetManifestCompression(HlsManifestCompression && value)1448     inline void SetManifestCompression(HlsManifestCompression&& value) { m_manifestCompressionHasBeenSet = true; m_manifestCompression = std::move(value); }
1449 
1450     /**
1451      * When set to gzip, compresses HLS playlist.
1452      */
WithManifestCompression(const HlsManifestCompression & value)1453     inline HlsGroupSettings& WithManifestCompression(const HlsManifestCompression& value) { SetManifestCompression(value); return *this;}
1454 
1455     /**
1456      * When set to gzip, compresses HLS playlist.
1457      */
WithManifestCompression(HlsManifestCompression && value)1458     inline HlsGroupSettings& WithManifestCompression(HlsManifestCompression&& value) { SetManifestCompression(std::move(value)); return *this;}
1459 
1460 
1461     /**
1462      * Indicates whether the output manifest should use floating point or integer
1463      * values for segment duration.
1464      */
GetManifestDurationFormat()1465     inline const HlsManifestDurationFormat& GetManifestDurationFormat() const{ return m_manifestDurationFormat; }
1466 
1467     /**
1468      * Indicates whether the output manifest should use floating point or integer
1469      * values for segment duration.
1470      */
ManifestDurationFormatHasBeenSet()1471     inline bool ManifestDurationFormatHasBeenSet() const { return m_manifestDurationFormatHasBeenSet; }
1472 
1473     /**
1474      * Indicates whether the output manifest should use floating point or integer
1475      * values for segment duration.
1476      */
SetManifestDurationFormat(const HlsManifestDurationFormat & value)1477     inline void SetManifestDurationFormat(const HlsManifestDurationFormat& value) { m_manifestDurationFormatHasBeenSet = true; m_manifestDurationFormat = value; }
1478 
1479     /**
1480      * Indicates whether the output manifest should use floating point or integer
1481      * values for segment duration.
1482      */
SetManifestDurationFormat(HlsManifestDurationFormat && value)1483     inline void SetManifestDurationFormat(HlsManifestDurationFormat&& value) { m_manifestDurationFormatHasBeenSet = true; m_manifestDurationFormat = std::move(value); }
1484 
1485     /**
1486      * Indicates whether the output manifest should use floating point or integer
1487      * values for segment duration.
1488      */
WithManifestDurationFormat(const HlsManifestDurationFormat & value)1489     inline HlsGroupSettings& WithManifestDurationFormat(const HlsManifestDurationFormat& value) { SetManifestDurationFormat(value); return *this;}
1490 
1491     /**
1492      * Indicates whether the output manifest should use floating point or integer
1493      * values for segment duration.
1494      */
WithManifestDurationFormat(HlsManifestDurationFormat && value)1495     inline HlsGroupSettings& WithManifestDurationFormat(HlsManifestDurationFormat&& value) { SetManifestDurationFormat(std::move(value)); return *this;}
1496 
1497 
1498     /**
1499      * When set, minimumSegmentLength is enforced by looking ahead and back within the
1500      * specified range for a nearby avail and extending the segment size if needed.
1501      */
GetMinSegmentLength()1502     inline int GetMinSegmentLength() const{ return m_minSegmentLength; }
1503 
1504     /**
1505      * When set, minimumSegmentLength is enforced by looking ahead and back within the
1506      * specified range for a nearby avail and extending the segment size if needed.
1507      */
MinSegmentLengthHasBeenSet()1508     inline bool MinSegmentLengthHasBeenSet() const { return m_minSegmentLengthHasBeenSet; }
1509 
1510     /**
1511      * When set, minimumSegmentLength is enforced by looking ahead and back within the
1512      * specified range for a nearby avail and extending the segment size if needed.
1513      */
SetMinSegmentLength(int value)1514     inline void SetMinSegmentLength(int value) { m_minSegmentLengthHasBeenSet = true; m_minSegmentLength = value; }
1515 
1516     /**
1517      * When set, minimumSegmentLength is enforced by looking ahead and back within the
1518      * specified range for a nearby avail and extending the segment size if needed.
1519      */
WithMinSegmentLength(int value)1520     inline HlsGroupSettings& WithMinSegmentLength(int value) { SetMinSegmentLength(value); return *this;}
1521 
1522 
1523     /**
1524      * If "vod", all segments are indexed and kept permanently in the destination and
1525      * manifest. If "live", only the number segments specified in keepSegments and
1526      * indexNSegments are kept; newer segments replace older segments, which may
1527      * prevent players from rewinding all the way to the beginning of the event.
1528 
1529 VOD
1530      * mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running,
1531      * converting it to a "VOD" type manifest on completion of the stream.
1532      */
GetMode()1533     inline const HlsMode& GetMode() const{ return m_mode; }
1534 
1535     /**
1536      * If "vod", all segments are indexed and kept permanently in the destination and
1537      * manifest. If "live", only the number segments specified in keepSegments and
1538      * indexNSegments are kept; newer segments replace older segments, which may
1539      * prevent players from rewinding all the way to the beginning of the event.
1540 
1541 VOD
1542      * mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running,
1543      * converting it to a "VOD" type manifest on completion of the stream.
1544      */
ModeHasBeenSet()1545     inline bool ModeHasBeenSet() const { return m_modeHasBeenSet; }
1546 
1547     /**
1548      * If "vod", all segments are indexed and kept permanently in the destination and
1549      * manifest. If "live", only the number segments specified in keepSegments and
1550      * indexNSegments are kept; newer segments replace older segments, which may
1551      * prevent players from rewinding all the way to the beginning of the event.
1552 
1553 VOD
1554      * mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running,
1555      * converting it to a "VOD" type manifest on completion of the stream.
1556      */
SetMode(const HlsMode & value)1557     inline void SetMode(const HlsMode& value) { m_modeHasBeenSet = true; m_mode = value; }
1558 
1559     /**
1560      * If "vod", all segments are indexed and kept permanently in the destination and
1561      * manifest. If "live", only the number segments specified in keepSegments and
1562      * indexNSegments are kept; newer segments replace older segments, which may
1563      * prevent players from rewinding all the way to the beginning of the event.
1564 
1565 VOD
1566      * mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running,
1567      * converting it to a "VOD" type manifest on completion of the stream.
1568      */
SetMode(HlsMode && value)1569     inline void SetMode(HlsMode&& value) { m_modeHasBeenSet = true; m_mode = std::move(value); }
1570 
1571     /**
1572      * If "vod", all segments are indexed and kept permanently in the destination and
1573      * manifest. If "live", only the number segments specified in keepSegments and
1574      * indexNSegments are kept; newer segments replace older segments, which may
1575      * prevent players from rewinding all the way to the beginning of the event.
1576 
1577 VOD
1578      * mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running,
1579      * converting it to a "VOD" type manifest on completion of the stream.
1580      */
WithMode(const HlsMode & value)1581     inline HlsGroupSettings& WithMode(const HlsMode& value) { SetMode(value); return *this;}
1582 
1583     /**
1584      * If "vod", all segments are indexed and kept permanently in the destination and
1585      * manifest. If "live", only the number segments specified in keepSegments and
1586      * indexNSegments are kept; newer segments replace older segments, which may
1587      * prevent players from rewinding all the way to the beginning of the event.
1588 
1589 VOD
1590      * mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running,
1591      * converting it to a "VOD" type manifest on completion of the stream.
1592      */
WithMode(HlsMode && value)1593     inline HlsGroupSettings& WithMode(HlsMode&& value) { SetMode(std::move(value)); return *this;}
1594 
1595 
1596     /**
1597      * MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if applicable, and
1598      * media manifests) for this output group.
1599 
1600 VARIANT_MANIFESTS_AND_SEGMENTS:
1601      * Generates media manifests for this output group, but not a master
1602      * manifest.
1603 
1604 SEGMENTS_ONLY: Does not generate any manifests for this output group.
1605      */
GetOutputSelection()1606     inline const HlsOutputSelection& GetOutputSelection() const{ return m_outputSelection; }
1607 
1608     /**
1609      * MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if applicable, and
1610      * media manifests) for this output group.
1611 
1612 VARIANT_MANIFESTS_AND_SEGMENTS:
1613      * Generates media manifests for this output group, but not a master
1614      * manifest.
1615 
1616 SEGMENTS_ONLY: Does not generate any manifests for this output group.
1617      */
OutputSelectionHasBeenSet()1618     inline bool OutputSelectionHasBeenSet() const { return m_outputSelectionHasBeenSet; }
1619 
1620     /**
1621      * MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if applicable, and
1622      * media manifests) for this output group.
1623 
1624 VARIANT_MANIFESTS_AND_SEGMENTS:
1625      * Generates media manifests for this output group, but not a master
1626      * manifest.
1627 
1628 SEGMENTS_ONLY: Does not generate any manifests for this output group.
1629      */
SetOutputSelection(const HlsOutputSelection & value)1630     inline void SetOutputSelection(const HlsOutputSelection& value) { m_outputSelectionHasBeenSet = true; m_outputSelection = value; }
1631 
1632     /**
1633      * MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if applicable, and
1634      * media manifests) for this output group.
1635 
1636 VARIANT_MANIFESTS_AND_SEGMENTS:
1637      * Generates media manifests for this output group, but not a master
1638      * manifest.
1639 
1640 SEGMENTS_ONLY: Does not generate any manifests for this output group.
1641      */
SetOutputSelection(HlsOutputSelection && value)1642     inline void SetOutputSelection(HlsOutputSelection&& value) { m_outputSelectionHasBeenSet = true; m_outputSelection = std::move(value); }
1643 
1644     /**
1645      * MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if applicable, and
1646      * media manifests) for this output group.
1647 
1648 VARIANT_MANIFESTS_AND_SEGMENTS:
1649      * Generates media manifests for this output group, but not a master
1650      * manifest.
1651 
1652 SEGMENTS_ONLY: Does not generate any manifests for this output group.
1653      */
WithOutputSelection(const HlsOutputSelection & value)1654     inline HlsGroupSettings& WithOutputSelection(const HlsOutputSelection& value) { SetOutputSelection(value); return *this;}
1655 
1656     /**
1657      * MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if applicable, and
1658      * media manifests) for this output group.
1659 
1660 VARIANT_MANIFESTS_AND_SEGMENTS:
1661      * Generates media manifests for this output group, but not a master
1662      * manifest.
1663 
1664 SEGMENTS_ONLY: Does not generate any manifests for this output group.
1665      */
WithOutputSelection(HlsOutputSelection && value)1666     inline HlsGroupSettings& WithOutputSelection(HlsOutputSelection&& value) { SetOutputSelection(std::move(value)); return *this;}
1667 
1668 
1669     /**
1670      * Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The
1671      * value is calculated as follows: either the program date and time are initialized
1672      * using the input timecode source, or the time is initialized using the input
1673      * timecode source and the date is initialized using the timestampOffset.
1674      */
GetProgramDateTime()1675     inline const HlsProgramDateTime& GetProgramDateTime() const{ return m_programDateTime; }
1676 
1677     /**
1678      * Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The
1679      * value is calculated as follows: either the program date and time are initialized
1680      * using the input timecode source, or the time is initialized using the input
1681      * timecode source and the date is initialized using the timestampOffset.
1682      */
ProgramDateTimeHasBeenSet()1683     inline bool ProgramDateTimeHasBeenSet() const { return m_programDateTimeHasBeenSet; }
1684 
1685     /**
1686      * Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The
1687      * value is calculated as follows: either the program date and time are initialized
1688      * using the input timecode source, or the time is initialized using the input
1689      * timecode source and the date is initialized using the timestampOffset.
1690      */
SetProgramDateTime(const HlsProgramDateTime & value)1691     inline void SetProgramDateTime(const HlsProgramDateTime& value) { m_programDateTimeHasBeenSet = true; m_programDateTime = value; }
1692 
1693     /**
1694      * Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The
1695      * value is calculated as follows: either the program date and time are initialized
1696      * using the input timecode source, or the time is initialized using the input
1697      * timecode source and the date is initialized using the timestampOffset.
1698      */
SetProgramDateTime(HlsProgramDateTime && value)1699     inline void SetProgramDateTime(HlsProgramDateTime&& value) { m_programDateTimeHasBeenSet = true; m_programDateTime = std::move(value); }
1700 
1701     /**
1702      * Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The
1703      * value is calculated as follows: either the program date and time are initialized
1704      * using the input timecode source, or the time is initialized using the input
1705      * timecode source and the date is initialized using the timestampOffset.
1706      */
WithProgramDateTime(const HlsProgramDateTime & value)1707     inline HlsGroupSettings& WithProgramDateTime(const HlsProgramDateTime& value) { SetProgramDateTime(value); return *this;}
1708 
1709     /**
1710      * Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The
1711      * value is calculated as follows: either the program date and time are initialized
1712      * using the input timecode source, or the time is initialized using the input
1713      * timecode source and the date is initialized using the timestampOffset.
1714      */
WithProgramDateTime(HlsProgramDateTime && value)1715     inline HlsGroupSettings& WithProgramDateTime(HlsProgramDateTime&& value) { SetProgramDateTime(std::move(value)); return *this;}
1716 
1717 
1718     /**
1719      * Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.
1720      */
GetProgramDateTimePeriod()1721     inline int GetProgramDateTimePeriod() const{ return m_programDateTimePeriod; }
1722 
1723     /**
1724      * Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.
1725      */
ProgramDateTimePeriodHasBeenSet()1726     inline bool ProgramDateTimePeriodHasBeenSet() const { return m_programDateTimePeriodHasBeenSet; }
1727 
1728     /**
1729      * Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.
1730      */
SetProgramDateTimePeriod(int value)1731     inline void SetProgramDateTimePeriod(int value) { m_programDateTimePeriodHasBeenSet = true; m_programDateTimePeriod = value; }
1732 
1733     /**
1734      * Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.
1735      */
WithProgramDateTimePeriod(int value)1736     inline HlsGroupSettings& WithProgramDateTimePeriod(int value) { SetProgramDateTimePeriod(value); return *this;}
1737 
1738 
1739     /**
1740      * ENABLED: The master manifest (.m3u8 file) for each pipeline includes information
1741      * about both pipelines: first its own media files, then the media files of the
1742      * other pipeline. This feature allows playout device that support stale manifest
1743      * detection to switch from one manifest to the other, when the current manifest
1744      * seems to be stale. There are still two destinations and two master manifests,
1745      * but both master manifests reference the media files from both
1746      * pipelines.
1747 
1748 DISABLED: The master manifest (.m3u8 file) for each pipeline
1749      * includes information about its own pipeline only.
1750 
1751 For an HLS output group with
1752      * MediaPackage as the destination, the DISABLED behavior is always followed.
1753      * MediaPackage regenerates the manifests it serves to players so a redundant
1754      * manifest from MediaLive is irrelevant.
1755      */
GetRedundantManifest()1756     inline const HlsRedundantManifest& GetRedundantManifest() const{ return m_redundantManifest; }
1757 
1758     /**
1759      * ENABLED: The master manifest (.m3u8 file) for each pipeline includes information
1760      * about both pipelines: first its own media files, then the media files of the
1761      * other pipeline. This feature allows playout device that support stale manifest
1762      * detection to switch from one manifest to the other, when the current manifest
1763      * seems to be stale. There are still two destinations and two master manifests,
1764      * but both master manifests reference the media files from both
1765      * pipelines.
1766 
1767 DISABLED: The master manifest (.m3u8 file) for each pipeline
1768      * includes information about its own pipeline only.
1769 
1770 For an HLS output group with
1771      * MediaPackage as the destination, the DISABLED behavior is always followed.
1772      * MediaPackage regenerates the manifests it serves to players so a redundant
1773      * manifest from MediaLive is irrelevant.
1774      */
RedundantManifestHasBeenSet()1775     inline bool RedundantManifestHasBeenSet() const { return m_redundantManifestHasBeenSet; }
1776 
1777     /**
1778      * ENABLED: The master manifest (.m3u8 file) for each pipeline includes information
1779      * about both pipelines: first its own media files, then the media files of the
1780      * other pipeline. This feature allows playout device that support stale manifest
1781      * detection to switch from one manifest to the other, when the current manifest
1782      * seems to be stale. There are still two destinations and two master manifests,
1783      * but both master manifests reference the media files from both
1784      * pipelines.
1785 
1786 DISABLED: The master manifest (.m3u8 file) for each pipeline
1787      * includes information about its own pipeline only.
1788 
1789 For an HLS output group with
1790      * MediaPackage as the destination, the DISABLED behavior is always followed.
1791      * MediaPackage regenerates the manifests it serves to players so a redundant
1792      * manifest from MediaLive is irrelevant.
1793      */
SetRedundantManifest(const HlsRedundantManifest & value)1794     inline void SetRedundantManifest(const HlsRedundantManifest& value) { m_redundantManifestHasBeenSet = true; m_redundantManifest = value; }
1795 
1796     /**
1797      * ENABLED: The master manifest (.m3u8 file) for each pipeline includes information
1798      * about both pipelines: first its own media files, then the media files of the
1799      * other pipeline. This feature allows playout device that support stale manifest
1800      * detection to switch from one manifest to the other, when the current manifest
1801      * seems to be stale. There are still two destinations and two master manifests,
1802      * but both master manifests reference the media files from both
1803      * pipelines.
1804 
1805 DISABLED: The master manifest (.m3u8 file) for each pipeline
1806      * includes information about its own pipeline only.
1807 
1808 For an HLS output group with
1809      * MediaPackage as the destination, the DISABLED behavior is always followed.
1810      * MediaPackage regenerates the manifests it serves to players so a redundant
1811      * manifest from MediaLive is irrelevant.
1812      */
SetRedundantManifest(HlsRedundantManifest && value)1813     inline void SetRedundantManifest(HlsRedundantManifest&& value) { m_redundantManifestHasBeenSet = true; m_redundantManifest = std::move(value); }
1814 
1815     /**
1816      * ENABLED: The master manifest (.m3u8 file) for each pipeline includes information
1817      * about both pipelines: first its own media files, then the media files of the
1818      * other pipeline. This feature allows playout device that support stale manifest
1819      * detection to switch from one manifest to the other, when the current manifest
1820      * seems to be stale. There are still two destinations and two master manifests,
1821      * but both master manifests reference the media files from both
1822      * pipelines.
1823 
1824 DISABLED: The master manifest (.m3u8 file) for each pipeline
1825      * includes information about its own pipeline only.
1826 
1827 For an HLS output group with
1828      * MediaPackage as the destination, the DISABLED behavior is always followed.
1829      * MediaPackage regenerates the manifests it serves to players so a redundant
1830      * manifest from MediaLive is irrelevant.
1831      */
WithRedundantManifest(const HlsRedundantManifest & value)1832     inline HlsGroupSettings& WithRedundantManifest(const HlsRedundantManifest& value) { SetRedundantManifest(value); return *this;}
1833 
1834     /**
1835      * ENABLED: The master manifest (.m3u8 file) for each pipeline includes information
1836      * about both pipelines: first its own media files, then the media files of the
1837      * other pipeline. This feature allows playout device that support stale manifest
1838      * detection to switch from one manifest to the other, when the current manifest
1839      * seems to be stale. There are still two destinations and two master manifests,
1840      * but both master manifests reference the media files from both
1841      * pipelines.
1842 
1843 DISABLED: The master manifest (.m3u8 file) for each pipeline
1844      * includes information about its own pipeline only.
1845 
1846 For an HLS output group with
1847      * MediaPackage as the destination, the DISABLED behavior is always followed.
1848      * MediaPackage regenerates the manifests it serves to players so a redundant
1849      * manifest from MediaLive is irrelevant.
1850      */
WithRedundantManifest(HlsRedundantManifest && value)1851     inline HlsGroupSettings& WithRedundantManifest(HlsRedundantManifest&& value) { SetRedundantManifest(std::move(value)); return *this;}
1852 
1853 
1854     /**
1855      * Length of MPEG-2 Transport Stream segments to create (in seconds). Note that
1856      * segments will end on the next keyframe after this number of seconds, so actual
1857      * segment length may be longer.
1858      */
GetSegmentLength()1859     inline int GetSegmentLength() const{ return m_segmentLength; }
1860 
1861     /**
1862      * Length of MPEG-2 Transport Stream segments to create (in seconds). Note that
1863      * segments will end on the next keyframe after this number of seconds, so actual
1864      * segment length may be longer.
1865      */
SegmentLengthHasBeenSet()1866     inline bool SegmentLengthHasBeenSet() const { return m_segmentLengthHasBeenSet; }
1867 
1868     /**
1869      * Length of MPEG-2 Transport Stream segments to create (in seconds). Note that
1870      * segments will end on the next keyframe after this number of seconds, so actual
1871      * segment length may be longer.
1872      */
SetSegmentLength(int value)1873     inline void SetSegmentLength(int value) { m_segmentLengthHasBeenSet = true; m_segmentLength = value; }
1874 
1875     /**
1876      * Length of MPEG-2 Transport Stream segments to create (in seconds). Note that
1877      * segments will end on the next keyframe after this number of seconds, so actual
1878      * segment length may be longer.
1879      */
WithSegmentLength(int value)1880     inline HlsGroupSettings& WithSegmentLength(int value) { SetSegmentLength(value); return *this;}
1881 
1882 
1883     /**
1884      * useInputSegmentation has been deprecated. The configured segment size is always
1885      * used.
1886      */
GetSegmentationMode()1887     inline const HlsSegmentationMode& GetSegmentationMode() const{ return m_segmentationMode; }
1888 
1889     /**
1890      * useInputSegmentation has been deprecated. The configured segment size is always
1891      * used.
1892      */
SegmentationModeHasBeenSet()1893     inline bool SegmentationModeHasBeenSet() const { return m_segmentationModeHasBeenSet; }
1894 
1895     /**
1896      * useInputSegmentation has been deprecated. The configured segment size is always
1897      * used.
1898      */
SetSegmentationMode(const HlsSegmentationMode & value)1899     inline void SetSegmentationMode(const HlsSegmentationMode& value) { m_segmentationModeHasBeenSet = true; m_segmentationMode = value; }
1900 
1901     /**
1902      * useInputSegmentation has been deprecated. The configured segment size is always
1903      * used.
1904      */
SetSegmentationMode(HlsSegmentationMode && value)1905     inline void SetSegmentationMode(HlsSegmentationMode&& value) { m_segmentationModeHasBeenSet = true; m_segmentationMode = std::move(value); }
1906 
1907     /**
1908      * useInputSegmentation has been deprecated. The configured segment size is always
1909      * used.
1910      */
WithSegmentationMode(const HlsSegmentationMode & value)1911     inline HlsGroupSettings& WithSegmentationMode(const HlsSegmentationMode& value) { SetSegmentationMode(value); return *this;}
1912 
1913     /**
1914      * useInputSegmentation has been deprecated. The configured segment size is always
1915      * used.
1916      */
WithSegmentationMode(HlsSegmentationMode && value)1917     inline HlsGroupSettings& WithSegmentationMode(HlsSegmentationMode&& value) { SetSegmentationMode(std::move(value)); return *this;}
1918 
1919 
1920     /**
1921      * Number of segments to write to a subdirectory before starting a new one.
1922      * directoryStructure must be subdirectoryPerStream for this setting to have an
1923      * effect.
1924      */
GetSegmentsPerSubdirectory()1925     inline int GetSegmentsPerSubdirectory() const{ return m_segmentsPerSubdirectory; }
1926 
1927     /**
1928      * Number of segments to write to a subdirectory before starting a new one.
1929      * directoryStructure must be subdirectoryPerStream for this setting to have an
1930      * effect.
1931      */
SegmentsPerSubdirectoryHasBeenSet()1932     inline bool SegmentsPerSubdirectoryHasBeenSet() const { return m_segmentsPerSubdirectoryHasBeenSet; }
1933 
1934     /**
1935      * Number of segments to write to a subdirectory before starting a new one.
1936      * directoryStructure must be subdirectoryPerStream for this setting to have an
1937      * effect.
1938      */
SetSegmentsPerSubdirectory(int value)1939     inline void SetSegmentsPerSubdirectory(int value) { m_segmentsPerSubdirectoryHasBeenSet = true; m_segmentsPerSubdirectory = value; }
1940 
1941     /**
1942      * Number of segments to write to a subdirectory before starting a new one.
1943      * directoryStructure must be subdirectoryPerStream for this setting to have an
1944      * effect.
1945      */
WithSegmentsPerSubdirectory(int value)1946     inline HlsGroupSettings& WithSegmentsPerSubdirectory(int value) { SetSegmentsPerSubdirectory(value); return *this;}
1947 
1948 
1949     /**
1950      * Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of
1951      * variant manifest.
1952      */
GetStreamInfResolution()1953     inline const HlsStreamInfResolution& GetStreamInfResolution() const{ return m_streamInfResolution; }
1954 
1955     /**
1956      * Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of
1957      * variant manifest.
1958      */
StreamInfResolutionHasBeenSet()1959     inline bool StreamInfResolutionHasBeenSet() const { return m_streamInfResolutionHasBeenSet; }
1960 
1961     /**
1962      * Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of
1963      * variant manifest.
1964      */
SetStreamInfResolution(const HlsStreamInfResolution & value)1965     inline void SetStreamInfResolution(const HlsStreamInfResolution& value) { m_streamInfResolutionHasBeenSet = true; m_streamInfResolution = value; }
1966 
1967     /**
1968      * Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of
1969      * variant manifest.
1970      */
SetStreamInfResolution(HlsStreamInfResolution && value)1971     inline void SetStreamInfResolution(HlsStreamInfResolution&& value) { m_streamInfResolutionHasBeenSet = true; m_streamInfResolution = std::move(value); }
1972 
1973     /**
1974      * Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of
1975      * variant manifest.
1976      */
WithStreamInfResolution(const HlsStreamInfResolution & value)1977     inline HlsGroupSettings& WithStreamInfResolution(const HlsStreamInfResolution& value) { SetStreamInfResolution(value); return *this;}
1978 
1979     /**
1980      * Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of
1981      * variant manifest.
1982      */
WithStreamInfResolution(HlsStreamInfResolution && value)1983     inline HlsGroupSettings& WithStreamInfResolution(HlsStreamInfResolution&& value) { SetStreamInfResolution(std::move(value)); return *this;}
1984 
1985 
1986     /**
1987      * Indicates ID3 frame that has the timecode.
1988      */
GetTimedMetadataId3Frame()1989     inline const HlsTimedMetadataId3Frame& GetTimedMetadataId3Frame() const{ return m_timedMetadataId3Frame; }
1990 
1991     /**
1992      * Indicates ID3 frame that has the timecode.
1993      */
TimedMetadataId3FrameHasBeenSet()1994     inline bool TimedMetadataId3FrameHasBeenSet() const { return m_timedMetadataId3FrameHasBeenSet; }
1995 
1996     /**
1997      * Indicates ID3 frame that has the timecode.
1998      */
SetTimedMetadataId3Frame(const HlsTimedMetadataId3Frame & value)1999     inline void SetTimedMetadataId3Frame(const HlsTimedMetadataId3Frame& value) { m_timedMetadataId3FrameHasBeenSet = true; m_timedMetadataId3Frame = value; }
2000 
2001     /**
2002      * Indicates ID3 frame that has the timecode.
2003      */
SetTimedMetadataId3Frame(HlsTimedMetadataId3Frame && value)2004     inline void SetTimedMetadataId3Frame(HlsTimedMetadataId3Frame&& value) { m_timedMetadataId3FrameHasBeenSet = true; m_timedMetadataId3Frame = std::move(value); }
2005 
2006     /**
2007      * Indicates ID3 frame that has the timecode.
2008      */
WithTimedMetadataId3Frame(const HlsTimedMetadataId3Frame & value)2009     inline HlsGroupSettings& WithTimedMetadataId3Frame(const HlsTimedMetadataId3Frame& value) { SetTimedMetadataId3Frame(value); return *this;}
2010 
2011     /**
2012      * Indicates ID3 frame that has the timecode.
2013      */
WithTimedMetadataId3Frame(HlsTimedMetadataId3Frame && value)2014     inline HlsGroupSettings& WithTimedMetadataId3Frame(HlsTimedMetadataId3Frame&& value) { SetTimedMetadataId3Frame(std::move(value)); return *this;}
2015 
2016 
2017     /**
2018      * Timed Metadata interval in seconds.
2019      */
GetTimedMetadataId3Period()2020     inline int GetTimedMetadataId3Period() const{ return m_timedMetadataId3Period; }
2021 
2022     /**
2023      * Timed Metadata interval in seconds.
2024      */
TimedMetadataId3PeriodHasBeenSet()2025     inline bool TimedMetadataId3PeriodHasBeenSet() const { return m_timedMetadataId3PeriodHasBeenSet; }
2026 
2027     /**
2028      * Timed Metadata interval in seconds.
2029      */
SetTimedMetadataId3Period(int value)2030     inline void SetTimedMetadataId3Period(int value) { m_timedMetadataId3PeriodHasBeenSet = true; m_timedMetadataId3Period = value; }
2031 
2032     /**
2033      * Timed Metadata interval in seconds.
2034      */
WithTimedMetadataId3Period(int value)2035     inline HlsGroupSettings& WithTimedMetadataId3Period(int value) { SetTimedMetadataId3Period(value); return *this;}
2036 
2037 
2038     /**
2039      * Provides an extra millisecond delta offset to fine tune the timestamps.
2040      */
GetTimestampDeltaMilliseconds()2041     inline int GetTimestampDeltaMilliseconds() const{ return m_timestampDeltaMilliseconds; }
2042 
2043     /**
2044      * Provides an extra millisecond delta offset to fine tune the timestamps.
2045      */
TimestampDeltaMillisecondsHasBeenSet()2046     inline bool TimestampDeltaMillisecondsHasBeenSet() const { return m_timestampDeltaMillisecondsHasBeenSet; }
2047 
2048     /**
2049      * Provides an extra millisecond delta offset to fine tune the timestamps.
2050      */
SetTimestampDeltaMilliseconds(int value)2051     inline void SetTimestampDeltaMilliseconds(int value) { m_timestampDeltaMillisecondsHasBeenSet = true; m_timestampDeltaMilliseconds = value; }
2052 
2053     /**
2054      * Provides an extra millisecond delta offset to fine tune the timestamps.
2055      */
WithTimestampDeltaMilliseconds(int value)2056     inline HlsGroupSettings& WithTimestampDeltaMilliseconds(int value) { SetTimestampDeltaMilliseconds(value); return *this;}
2057 
2058 
2059     /**
2060      * SEGMENTED_FILES: Emit the program as segments - multiple .ts media
2061      * files.
2062 
2063 SINGLE_FILE: Applies only if Mode field is VOD. Emit the program as a
2064      * single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to
2065      * index segments for playback. A typical use for this value is when sending the
2066      * output to AWS Elemental MediaConvert, which can accept only a single media file.
2067      * Playback while the channel is running is not guaranteed due to HTTP server
2068      * caching.
2069      */
GetTsFileMode()2070     inline const HlsTsFileMode& GetTsFileMode() const{ return m_tsFileMode; }
2071 
2072     /**
2073      * SEGMENTED_FILES: Emit the program as segments - multiple .ts media
2074      * files.
2075 
2076 SINGLE_FILE: Applies only if Mode field is VOD. Emit the program as a
2077      * single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to
2078      * index segments for playback. A typical use for this value is when sending the
2079      * output to AWS Elemental MediaConvert, which can accept only a single media file.
2080      * Playback while the channel is running is not guaranteed due to HTTP server
2081      * caching.
2082      */
TsFileModeHasBeenSet()2083     inline bool TsFileModeHasBeenSet() const { return m_tsFileModeHasBeenSet; }
2084 
2085     /**
2086      * SEGMENTED_FILES: Emit the program as segments - multiple .ts media
2087      * files.
2088 
2089 SINGLE_FILE: Applies only if Mode field is VOD. Emit the program as a
2090      * single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to
2091      * index segments for playback. A typical use for this value is when sending the
2092      * output to AWS Elemental MediaConvert, which can accept only a single media file.
2093      * Playback while the channel is running is not guaranteed due to HTTP server
2094      * caching.
2095      */
SetTsFileMode(const HlsTsFileMode & value)2096     inline void SetTsFileMode(const HlsTsFileMode& value) { m_tsFileModeHasBeenSet = true; m_tsFileMode = value; }
2097 
2098     /**
2099      * SEGMENTED_FILES: Emit the program as segments - multiple .ts media
2100      * files.
2101 
2102 SINGLE_FILE: Applies only if Mode field is VOD. Emit the program as a
2103      * single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to
2104      * index segments for playback. A typical use for this value is when sending the
2105      * output to AWS Elemental MediaConvert, which can accept only a single media file.
2106      * Playback while the channel is running is not guaranteed due to HTTP server
2107      * caching.
2108      */
SetTsFileMode(HlsTsFileMode && value)2109     inline void SetTsFileMode(HlsTsFileMode&& value) { m_tsFileModeHasBeenSet = true; m_tsFileMode = std::move(value); }
2110 
2111     /**
2112      * SEGMENTED_FILES: Emit the program as segments - multiple .ts media
2113      * files.
2114 
2115 SINGLE_FILE: Applies only if Mode field is VOD. Emit the program as a
2116      * single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to
2117      * index segments for playback. A typical use for this value is when sending the
2118      * output to AWS Elemental MediaConvert, which can accept only a single media file.
2119      * Playback while the channel is running is not guaranteed due to HTTP server
2120      * caching.
2121      */
WithTsFileMode(const HlsTsFileMode & value)2122     inline HlsGroupSettings& WithTsFileMode(const HlsTsFileMode& value) { SetTsFileMode(value); return *this;}
2123 
2124     /**
2125      * SEGMENTED_FILES: Emit the program as segments - multiple .ts media
2126      * files.
2127 
2128 SINGLE_FILE: Applies only if Mode field is VOD. Emit the program as a
2129      * single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to
2130      * index segments for playback. A typical use for this value is when sending the
2131      * output to AWS Elemental MediaConvert, which can accept only a single media file.
2132      * Playback while the channel is running is not guaranteed due to HTTP server
2133      * caching.
2134      */
WithTsFileMode(HlsTsFileMode && value)2135     inline HlsGroupSettings& WithTsFileMode(HlsTsFileMode&& value) { SetTsFileMode(std::move(value)); return *this;}
2136 
2137   private:
2138 
2139     Aws::Vector<HlsAdMarkers> m_adMarkers;
2140     bool m_adMarkersHasBeenSet;
2141 
2142     Aws::String m_baseUrlContent;
2143     bool m_baseUrlContentHasBeenSet;
2144 
2145     Aws::String m_baseUrlContent1;
2146     bool m_baseUrlContent1HasBeenSet;
2147 
2148     Aws::String m_baseUrlManifest;
2149     bool m_baseUrlManifestHasBeenSet;
2150 
2151     Aws::String m_baseUrlManifest1;
2152     bool m_baseUrlManifest1HasBeenSet;
2153 
2154     Aws::Vector<CaptionLanguageMapping> m_captionLanguageMappings;
2155     bool m_captionLanguageMappingsHasBeenSet;
2156 
2157     HlsCaptionLanguageSetting m_captionLanguageSetting;
2158     bool m_captionLanguageSettingHasBeenSet;
2159 
2160     HlsClientCache m_clientCache;
2161     bool m_clientCacheHasBeenSet;
2162 
2163     HlsCodecSpecification m_codecSpecification;
2164     bool m_codecSpecificationHasBeenSet;
2165 
2166     Aws::String m_constantIv;
2167     bool m_constantIvHasBeenSet;
2168 
2169     OutputLocationRef m_destination;
2170     bool m_destinationHasBeenSet;
2171 
2172     HlsDirectoryStructure m_directoryStructure;
2173     bool m_directoryStructureHasBeenSet;
2174 
2175     HlsDiscontinuityTags m_discontinuityTags;
2176     bool m_discontinuityTagsHasBeenSet;
2177 
2178     HlsEncryptionType m_encryptionType;
2179     bool m_encryptionTypeHasBeenSet;
2180 
2181     HlsCdnSettings m_hlsCdnSettings;
2182     bool m_hlsCdnSettingsHasBeenSet;
2183 
2184     HlsId3SegmentTaggingState m_hlsId3SegmentTagging;
2185     bool m_hlsId3SegmentTaggingHasBeenSet;
2186 
2187     IFrameOnlyPlaylistType m_iFrameOnlyPlaylists;
2188     bool m_iFrameOnlyPlaylistsHasBeenSet;
2189 
2190     HlsIncompleteSegmentBehavior m_incompleteSegmentBehavior;
2191     bool m_incompleteSegmentBehaviorHasBeenSet;
2192 
2193     int m_indexNSegments;
2194     bool m_indexNSegmentsHasBeenSet;
2195 
2196     InputLossActionForHlsOut m_inputLossAction;
2197     bool m_inputLossActionHasBeenSet;
2198 
2199     HlsIvInManifest m_ivInManifest;
2200     bool m_ivInManifestHasBeenSet;
2201 
2202     HlsIvSource m_ivSource;
2203     bool m_ivSourceHasBeenSet;
2204 
2205     int m_keepSegments;
2206     bool m_keepSegmentsHasBeenSet;
2207 
2208     Aws::String m_keyFormat;
2209     bool m_keyFormatHasBeenSet;
2210 
2211     Aws::String m_keyFormatVersions;
2212     bool m_keyFormatVersionsHasBeenSet;
2213 
2214     KeyProviderSettings m_keyProviderSettings;
2215     bool m_keyProviderSettingsHasBeenSet;
2216 
2217     HlsManifestCompression m_manifestCompression;
2218     bool m_manifestCompressionHasBeenSet;
2219 
2220     HlsManifestDurationFormat m_manifestDurationFormat;
2221     bool m_manifestDurationFormatHasBeenSet;
2222 
2223     int m_minSegmentLength;
2224     bool m_minSegmentLengthHasBeenSet;
2225 
2226     HlsMode m_mode;
2227     bool m_modeHasBeenSet;
2228 
2229     HlsOutputSelection m_outputSelection;
2230     bool m_outputSelectionHasBeenSet;
2231 
2232     HlsProgramDateTime m_programDateTime;
2233     bool m_programDateTimeHasBeenSet;
2234 
2235     int m_programDateTimePeriod;
2236     bool m_programDateTimePeriodHasBeenSet;
2237 
2238     HlsRedundantManifest m_redundantManifest;
2239     bool m_redundantManifestHasBeenSet;
2240 
2241     int m_segmentLength;
2242     bool m_segmentLengthHasBeenSet;
2243 
2244     HlsSegmentationMode m_segmentationMode;
2245     bool m_segmentationModeHasBeenSet;
2246 
2247     int m_segmentsPerSubdirectory;
2248     bool m_segmentsPerSubdirectoryHasBeenSet;
2249 
2250     HlsStreamInfResolution m_streamInfResolution;
2251     bool m_streamInfResolutionHasBeenSet;
2252 
2253     HlsTimedMetadataId3Frame m_timedMetadataId3Frame;
2254     bool m_timedMetadataId3FrameHasBeenSet;
2255 
2256     int m_timedMetadataId3Period;
2257     bool m_timedMetadataId3PeriodHasBeenSet;
2258 
2259     int m_timestampDeltaMilliseconds;
2260     bool m_timestampDeltaMillisecondsHasBeenSet;
2261 
2262     HlsTsFileMode m_tsFileMode;
2263     bool m_tsFileModeHasBeenSet;
2264   };
2265 
2266 } // namespace Model
2267 } // namespace MediaLive
2268 } // namespace Aws
2269