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/mediapackage/MediaPackage_EXPORTS.h> 8 #include <aws/mediapackage/model/AdMarkers.h> 9 #include <aws/core/utils/memory/stl/AWSVector.h> 10 #include <aws/mediapackage/model/AdsOnDeliveryRestrictions.h> 11 #include <aws/core/utils/memory/stl/AWSString.h> 12 #include <aws/mediapackage/model/PlaylistType.h> 13 #include <aws/mediapackage/model/__AdTriggersElement.h> 14 #include <utility> 15 16 namespace Aws 17 { 18 namespace Utils 19 { 20 namespace Json 21 { 22 class JsonValue; 23 class JsonView; 24 } // namespace Json 25 } // namespace Utils 26 namespace MediaPackage 27 { 28 namespace Model 29 { 30 31 /** 32 * A HTTP Live Streaming (HLS) manifest configuration.<p><h3>See Also:</h3> <a 33 * href="http://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/HlsManifestCreateOrUpdateParameters">AWS 34 * API Reference</a></p> 35 */ 36 class AWS_MEDIAPACKAGE_API HlsManifestCreateOrUpdateParameters 37 { 38 public: 39 HlsManifestCreateOrUpdateParameters(); 40 HlsManifestCreateOrUpdateParameters(Aws::Utils::Json::JsonView jsonValue); 41 HlsManifestCreateOrUpdateParameters& operator=(Aws::Utils::Json::JsonView jsonValue); 42 Aws::Utils::Json::JsonValue Jsonize() const; 43 44 45 /** 46 * This setting controls how ad markers are included in the packaged 47 * OriginEndpoint. 48 "NONE" will omit all SCTE-35 ad markers from the 49 * output. 50 "PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 51 * ad 52 markers (comments) taken directly from the input HTTP Live Streaming (HLS) 53 * manifest. 54 "SCTE35_ENHANCED" generates ad markers and blackout tags based on 55 * SCTE-35 56 messages in the input source. 57 "DATERANGE" inserts EXT-X-DATERANGE tags 58 * to signal ad and program transition events 59 in HLS and CMAF manifests. For this 60 * option, you must set a programDateTimeIntervalSeconds value 61 that is greater 62 * than 0. 63 64 */ GetAdMarkers()65 inline const AdMarkers& GetAdMarkers() const{ return m_adMarkers; } 66 67 /** 68 * This setting controls how ad markers are included in the packaged 69 * OriginEndpoint. 70 "NONE" will omit all SCTE-35 ad markers from the 71 * output. 72 "PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 73 * ad 74 markers (comments) taken directly from the input HTTP Live Streaming (HLS) 75 * manifest. 76 "SCTE35_ENHANCED" generates ad markers and blackout tags based on 77 * SCTE-35 78 messages in the input source. 79 "DATERANGE" inserts EXT-X-DATERANGE tags 80 * to signal ad and program transition events 81 in HLS and CMAF manifests. For this 82 * option, you must set a programDateTimeIntervalSeconds value 83 that is greater 84 * than 0. 85 86 */ AdMarkersHasBeenSet()87 inline bool AdMarkersHasBeenSet() const { return m_adMarkersHasBeenSet; } 88 89 /** 90 * This setting controls how ad markers are included in the packaged 91 * OriginEndpoint. 92 "NONE" will omit all SCTE-35 ad markers from the 93 * output. 94 "PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 95 * ad 96 markers (comments) taken directly from the input HTTP Live Streaming (HLS) 97 * manifest. 98 "SCTE35_ENHANCED" generates ad markers and blackout tags based on 99 * SCTE-35 100 messages in the input source. 101 "DATERANGE" inserts EXT-X-DATERANGE tags 102 * to signal ad and program transition events 103 in HLS and CMAF manifests. For this 104 * option, you must set a programDateTimeIntervalSeconds value 105 that is greater 106 * than 0. 107 108 */ SetAdMarkers(const AdMarkers & value)109 inline void SetAdMarkers(const AdMarkers& value) { m_adMarkersHasBeenSet = true; m_adMarkers = value; } 110 111 /** 112 * This setting controls how ad markers are included in the packaged 113 * OriginEndpoint. 114 "NONE" will omit all SCTE-35 ad markers from the 115 * output. 116 "PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 117 * ad 118 markers (comments) taken directly from the input HTTP Live Streaming (HLS) 119 * manifest. 120 "SCTE35_ENHANCED" generates ad markers and blackout tags based on 121 * SCTE-35 122 messages in the input source. 123 "DATERANGE" inserts EXT-X-DATERANGE tags 124 * to signal ad and program transition events 125 in HLS and CMAF manifests. For this 126 * option, you must set a programDateTimeIntervalSeconds value 127 that is greater 128 * than 0. 129 130 */ SetAdMarkers(AdMarkers && value)131 inline void SetAdMarkers(AdMarkers&& value) { m_adMarkersHasBeenSet = true; m_adMarkers = std::move(value); } 132 133 /** 134 * This setting controls how ad markers are included in the packaged 135 * OriginEndpoint. 136 "NONE" will omit all SCTE-35 ad markers from the 137 * output. 138 "PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 139 * ad 140 markers (comments) taken directly from the input HTTP Live Streaming (HLS) 141 * manifest. 142 "SCTE35_ENHANCED" generates ad markers and blackout tags based on 143 * SCTE-35 144 messages in the input source. 145 "DATERANGE" inserts EXT-X-DATERANGE tags 146 * to signal ad and program transition events 147 in HLS and CMAF manifests. For this 148 * option, you must set a programDateTimeIntervalSeconds value 149 that is greater 150 * than 0. 151 152 */ WithAdMarkers(const AdMarkers & value)153 inline HlsManifestCreateOrUpdateParameters& WithAdMarkers(const AdMarkers& value) { SetAdMarkers(value); return *this;} 154 155 /** 156 * This setting controls how ad markers are included in the packaged 157 * OriginEndpoint. 158 "NONE" will omit all SCTE-35 ad markers from the 159 * output. 160 "PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 161 * ad 162 markers (comments) taken directly from the input HTTP Live Streaming (HLS) 163 * manifest. 164 "SCTE35_ENHANCED" generates ad markers and blackout tags based on 165 * SCTE-35 166 messages in the input source. 167 "DATERANGE" inserts EXT-X-DATERANGE tags 168 * to signal ad and program transition events 169 in HLS and CMAF manifests. For this 170 * option, you must set a programDateTimeIntervalSeconds value 171 that is greater 172 * than 0. 173 174 */ WithAdMarkers(AdMarkers && value)175 inline HlsManifestCreateOrUpdateParameters& WithAdMarkers(AdMarkers&& value) { SetAdMarkers(std::move(value)); return *this;} 176 177 178 GetAdTriggers()179 inline const Aws::Vector<__AdTriggersElement>& GetAdTriggers() const{ return m_adTriggers; } 180 181 AdTriggersHasBeenSet()182 inline bool AdTriggersHasBeenSet() const { return m_adTriggersHasBeenSet; } 183 184 SetAdTriggers(const Aws::Vector<__AdTriggersElement> & value)185 inline void SetAdTriggers(const Aws::Vector<__AdTriggersElement>& value) { m_adTriggersHasBeenSet = true; m_adTriggers = value; } 186 187 SetAdTriggers(Aws::Vector<__AdTriggersElement> && value)188 inline void SetAdTriggers(Aws::Vector<__AdTriggersElement>&& value) { m_adTriggersHasBeenSet = true; m_adTriggers = std::move(value); } 189 190 WithAdTriggers(const Aws::Vector<__AdTriggersElement> & value)191 inline HlsManifestCreateOrUpdateParameters& WithAdTriggers(const Aws::Vector<__AdTriggersElement>& value) { SetAdTriggers(value); return *this;} 192 193 WithAdTriggers(Aws::Vector<__AdTriggersElement> && value)194 inline HlsManifestCreateOrUpdateParameters& WithAdTriggers(Aws::Vector<__AdTriggersElement>&& value) { SetAdTriggers(std::move(value)); return *this;} 195 196 AddAdTriggers(const __AdTriggersElement & value)197 inline HlsManifestCreateOrUpdateParameters& AddAdTriggers(const __AdTriggersElement& value) { m_adTriggersHasBeenSet = true; m_adTriggers.push_back(value); return *this; } 198 199 AddAdTriggers(__AdTriggersElement && value)200 inline HlsManifestCreateOrUpdateParameters& AddAdTriggers(__AdTriggersElement&& value) { m_adTriggersHasBeenSet = true; m_adTriggers.push_back(std::move(value)); return *this; } 201 202 203 GetAdsOnDeliveryRestrictions()204 inline const AdsOnDeliveryRestrictions& GetAdsOnDeliveryRestrictions() const{ return m_adsOnDeliveryRestrictions; } 205 206 AdsOnDeliveryRestrictionsHasBeenSet()207 inline bool AdsOnDeliveryRestrictionsHasBeenSet() const { return m_adsOnDeliveryRestrictionsHasBeenSet; } 208 209 SetAdsOnDeliveryRestrictions(const AdsOnDeliveryRestrictions & value)210 inline void SetAdsOnDeliveryRestrictions(const AdsOnDeliveryRestrictions& value) { m_adsOnDeliveryRestrictionsHasBeenSet = true; m_adsOnDeliveryRestrictions = value; } 211 212 SetAdsOnDeliveryRestrictions(AdsOnDeliveryRestrictions && value)213 inline void SetAdsOnDeliveryRestrictions(AdsOnDeliveryRestrictions&& value) { m_adsOnDeliveryRestrictionsHasBeenSet = true; m_adsOnDeliveryRestrictions = std::move(value); } 214 215 WithAdsOnDeliveryRestrictions(const AdsOnDeliveryRestrictions & value)216 inline HlsManifestCreateOrUpdateParameters& WithAdsOnDeliveryRestrictions(const AdsOnDeliveryRestrictions& value) { SetAdsOnDeliveryRestrictions(value); return *this;} 217 218 WithAdsOnDeliveryRestrictions(AdsOnDeliveryRestrictions && value)219 inline HlsManifestCreateOrUpdateParameters& WithAdsOnDeliveryRestrictions(AdsOnDeliveryRestrictions&& value) { SetAdsOnDeliveryRestrictions(std::move(value)); return *this;} 220 221 222 /** 223 * The ID of the manifest. The ID must be unique within the OriginEndpoint and it 224 * cannot be changed after it is created. 225 */ GetId()226 inline const Aws::String& GetId() const{ return m_id; } 227 228 /** 229 * The ID of the manifest. The ID must be unique within the OriginEndpoint and it 230 * cannot be changed after it is created. 231 */ IdHasBeenSet()232 inline bool IdHasBeenSet() const { return m_idHasBeenSet; } 233 234 /** 235 * The ID of the manifest. The ID must be unique within the OriginEndpoint and it 236 * cannot be changed after it is created. 237 */ SetId(const Aws::String & value)238 inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } 239 240 /** 241 * The ID of the manifest. The ID must be unique within the OriginEndpoint and it 242 * cannot be changed after it is created. 243 */ SetId(Aws::String && value)244 inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } 245 246 /** 247 * The ID of the manifest. The ID must be unique within the OriginEndpoint and it 248 * cannot be changed after it is created. 249 */ SetId(const char * value)250 inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } 251 252 /** 253 * The ID of the manifest. The ID must be unique within the OriginEndpoint and it 254 * cannot be changed after it is created. 255 */ WithId(const Aws::String & value)256 inline HlsManifestCreateOrUpdateParameters& WithId(const Aws::String& value) { SetId(value); return *this;} 257 258 /** 259 * The ID of the manifest. The ID must be unique within the OriginEndpoint and it 260 * cannot be changed after it is created. 261 */ WithId(Aws::String && value)262 inline HlsManifestCreateOrUpdateParameters& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} 263 264 /** 265 * The ID of the manifest. The ID must be unique within the OriginEndpoint and it 266 * cannot be changed after it is created. 267 */ WithId(const char * value)268 inline HlsManifestCreateOrUpdateParameters& WithId(const char* value) { SetId(value); return *this;} 269 270 271 /** 272 * When enabled, an I-Frame only stream will be included in the output. 273 */ GetIncludeIframeOnlyStream()274 inline bool GetIncludeIframeOnlyStream() const{ return m_includeIframeOnlyStream; } 275 276 /** 277 * When enabled, an I-Frame only stream will be included in the output. 278 */ IncludeIframeOnlyStreamHasBeenSet()279 inline bool IncludeIframeOnlyStreamHasBeenSet() const { return m_includeIframeOnlyStreamHasBeenSet; } 280 281 /** 282 * When enabled, an I-Frame only stream will be included in the output. 283 */ SetIncludeIframeOnlyStream(bool value)284 inline void SetIncludeIframeOnlyStream(bool value) { m_includeIframeOnlyStreamHasBeenSet = true; m_includeIframeOnlyStream = value; } 285 286 /** 287 * When enabled, an I-Frame only stream will be included in the output. 288 */ WithIncludeIframeOnlyStream(bool value)289 inline HlsManifestCreateOrUpdateParameters& WithIncludeIframeOnlyStream(bool value) { SetIncludeIframeOnlyStream(value); return *this;} 290 291 292 /** 293 * An optional short string appended to the end of the OriginEndpoint URL. If not 294 * specified, defaults to the manifestName for the OriginEndpoint. 295 */ GetManifestName()296 inline const Aws::String& GetManifestName() const{ return m_manifestName; } 297 298 /** 299 * An optional short string appended to the end of the OriginEndpoint URL. If not 300 * specified, defaults to the manifestName for the OriginEndpoint. 301 */ ManifestNameHasBeenSet()302 inline bool ManifestNameHasBeenSet() const { return m_manifestNameHasBeenSet; } 303 304 /** 305 * An optional short string appended to the end of the OriginEndpoint URL. If not 306 * specified, defaults to the manifestName for the OriginEndpoint. 307 */ SetManifestName(const Aws::String & value)308 inline void SetManifestName(const Aws::String& value) { m_manifestNameHasBeenSet = true; m_manifestName = value; } 309 310 /** 311 * An optional short string appended to the end of the OriginEndpoint URL. If not 312 * specified, defaults to the manifestName for the OriginEndpoint. 313 */ SetManifestName(Aws::String && value)314 inline void SetManifestName(Aws::String&& value) { m_manifestNameHasBeenSet = true; m_manifestName = std::move(value); } 315 316 /** 317 * An optional short string appended to the end of the OriginEndpoint URL. If not 318 * specified, defaults to the manifestName for the OriginEndpoint. 319 */ SetManifestName(const char * value)320 inline void SetManifestName(const char* value) { m_manifestNameHasBeenSet = true; m_manifestName.assign(value); } 321 322 /** 323 * An optional short string appended to the end of the OriginEndpoint URL. If not 324 * specified, defaults to the manifestName for the OriginEndpoint. 325 */ WithManifestName(const Aws::String & value)326 inline HlsManifestCreateOrUpdateParameters& WithManifestName(const Aws::String& value) { SetManifestName(value); return *this;} 327 328 /** 329 * An optional short string appended to the end of the OriginEndpoint URL. If not 330 * specified, defaults to the manifestName for the OriginEndpoint. 331 */ WithManifestName(Aws::String && value)332 inline HlsManifestCreateOrUpdateParameters& WithManifestName(Aws::String&& value) { SetManifestName(std::move(value)); return *this;} 333 334 /** 335 * An optional short string appended to the end of the OriginEndpoint URL. If not 336 * specified, defaults to the manifestName for the OriginEndpoint. 337 */ WithManifestName(const char * value)338 inline HlsManifestCreateOrUpdateParameters& WithManifestName(const char* value) { SetManifestName(value); return *this;} 339 340 341 /** 342 * The HTTP Live Streaming (HLS) playlist type. 343 When either "EVENT" or "VOD" is 344 * specified, a corresponding EXT-X-PLAYLIST-TYPE 345 entry will be included in the 346 * media playlist. 347 348 */ GetPlaylistType()349 inline const PlaylistType& GetPlaylistType() const{ return m_playlistType; } 350 351 /** 352 * The HTTP Live Streaming (HLS) playlist type. 353 When either "EVENT" or "VOD" is 354 * specified, a corresponding EXT-X-PLAYLIST-TYPE 355 entry will be included in the 356 * media playlist. 357 358 */ PlaylistTypeHasBeenSet()359 inline bool PlaylistTypeHasBeenSet() const { return m_playlistTypeHasBeenSet; } 360 361 /** 362 * The HTTP Live Streaming (HLS) playlist type. 363 When either "EVENT" or "VOD" is 364 * specified, a corresponding EXT-X-PLAYLIST-TYPE 365 entry will be included in the 366 * media playlist. 367 368 */ SetPlaylistType(const PlaylistType & value)369 inline void SetPlaylistType(const PlaylistType& value) { m_playlistTypeHasBeenSet = true; m_playlistType = value; } 370 371 /** 372 * The HTTP Live Streaming (HLS) playlist type. 373 When either "EVENT" or "VOD" is 374 * specified, a corresponding EXT-X-PLAYLIST-TYPE 375 entry will be included in the 376 * media playlist. 377 378 */ SetPlaylistType(PlaylistType && value)379 inline void SetPlaylistType(PlaylistType&& value) { m_playlistTypeHasBeenSet = true; m_playlistType = std::move(value); } 380 381 /** 382 * The HTTP Live Streaming (HLS) playlist type. 383 When either "EVENT" or "VOD" is 384 * specified, a corresponding EXT-X-PLAYLIST-TYPE 385 entry will be included in the 386 * media playlist. 387 388 */ WithPlaylistType(const PlaylistType & value)389 inline HlsManifestCreateOrUpdateParameters& WithPlaylistType(const PlaylistType& value) { SetPlaylistType(value); return *this;} 390 391 /** 392 * The HTTP Live Streaming (HLS) playlist type. 393 When either "EVENT" or "VOD" is 394 * specified, a corresponding EXT-X-PLAYLIST-TYPE 395 entry will be included in the 396 * media playlist. 397 398 */ WithPlaylistType(PlaylistType && value)399 inline HlsManifestCreateOrUpdateParameters& WithPlaylistType(PlaylistType&& value) { SetPlaylistType(std::move(value)); return *this;} 400 401 402 /** 403 * Time window (in seconds) contained in each parent manifest. 404 */ GetPlaylistWindowSeconds()405 inline int GetPlaylistWindowSeconds() const{ return m_playlistWindowSeconds; } 406 407 /** 408 * Time window (in seconds) contained in each parent manifest. 409 */ PlaylistWindowSecondsHasBeenSet()410 inline bool PlaylistWindowSecondsHasBeenSet() const { return m_playlistWindowSecondsHasBeenSet; } 411 412 /** 413 * Time window (in seconds) contained in each parent manifest. 414 */ SetPlaylistWindowSeconds(int value)415 inline void SetPlaylistWindowSeconds(int value) { m_playlistWindowSecondsHasBeenSet = true; m_playlistWindowSeconds = value; } 416 417 /** 418 * Time window (in seconds) contained in each parent manifest. 419 */ WithPlaylistWindowSeconds(int value)420 inline HlsManifestCreateOrUpdateParameters& WithPlaylistWindowSeconds(int value) { SetPlaylistWindowSeconds(value); return *this;} 421 422 423 /** 424 * The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag 425 inserted into 426 * manifests. Additionally, when an interval is specified 427 ID3Timed Metadata 428 * messages will be generated every 5 seconds using the 429 ingest time of the 430 * content. 431 If the interval is not specified, or set to 0, then 432 no 433 * EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no 434 ID3Timed 435 * Metadata messages will be generated. Note that irrespective 436 of this parameter, 437 * if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, 438 it will 439 * be passed through to HLS output. 440 441 */ GetProgramDateTimeIntervalSeconds()442 inline int GetProgramDateTimeIntervalSeconds() const{ return m_programDateTimeIntervalSeconds; } 443 444 /** 445 * The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag 446 inserted into 447 * manifests. Additionally, when an interval is specified 448 ID3Timed Metadata 449 * messages will be generated every 5 seconds using the 450 ingest time of the 451 * content. 452 If the interval is not specified, or set to 0, then 453 no 454 * EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no 455 ID3Timed 456 * Metadata messages will be generated. Note that irrespective 457 of this parameter, 458 * if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, 459 it will 460 * be passed through to HLS output. 461 462 */ ProgramDateTimeIntervalSecondsHasBeenSet()463 inline bool ProgramDateTimeIntervalSecondsHasBeenSet() const { return m_programDateTimeIntervalSecondsHasBeenSet; } 464 465 /** 466 * The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag 467 inserted into 468 * manifests. Additionally, when an interval is specified 469 ID3Timed Metadata 470 * messages will be generated every 5 seconds using the 471 ingest time of the 472 * content. 473 If the interval is not specified, or set to 0, then 474 no 475 * EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no 476 ID3Timed 477 * Metadata messages will be generated. Note that irrespective 478 of this parameter, 479 * if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, 480 it will 481 * be passed through to HLS output. 482 483 */ SetProgramDateTimeIntervalSeconds(int value)484 inline void SetProgramDateTimeIntervalSeconds(int value) { m_programDateTimeIntervalSecondsHasBeenSet = true; m_programDateTimeIntervalSeconds = value; } 485 486 /** 487 * The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag 488 inserted into 489 * manifests. Additionally, when an interval is specified 490 ID3Timed Metadata 491 * messages will be generated every 5 seconds using the 492 ingest time of the 493 * content. 494 If the interval is not specified, or set to 0, then 495 no 496 * EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no 497 ID3Timed 498 * Metadata messages will be generated. Note that irrespective 499 of this parameter, 500 * if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, 501 it will 502 * be passed through to HLS output. 503 504 */ WithProgramDateTimeIntervalSeconds(int value)505 inline HlsManifestCreateOrUpdateParameters& WithProgramDateTimeIntervalSeconds(int value) { SetProgramDateTimeIntervalSeconds(value); return *this;} 506 507 private: 508 509 AdMarkers m_adMarkers; 510 bool m_adMarkersHasBeenSet; 511 512 Aws::Vector<__AdTriggersElement> m_adTriggers; 513 bool m_adTriggersHasBeenSet; 514 515 AdsOnDeliveryRestrictions m_adsOnDeliveryRestrictions; 516 bool m_adsOnDeliveryRestrictionsHasBeenSet; 517 518 Aws::String m_id; 519 bool m_idHasBeenSet; 520 521 bool m_includeIframeOnlyStream; 522 bool m_includeIframeOnlyStreamHasBeenSet; 523 524 Aws::String m_manifestName; 525 bool m_manifestNameHasBeenSet; 526 527 PlaylistType m_playlistType; 528 bool m_playlistTypeHasBeenSet; 529 530 int m_playlistWindowSeconds; 531 bool m_playlistWindowSecondsHasBeenSet; 532 533 int m_programDateTimeIntervalSeconds; 534 bool m_programDateTimeIntervalSecondsHasBeenSet; 535 }; 536 537 } // namespace Model 538 } // namespace MediaPackage 539 } // namespace Aws 540