/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace MediaTailor { namespace Model { /** *

Ad break configuration parameters.

See Also:

AWS * API Reference

*/ class AdBreak { public: AWS_MEDIATAILOR_API AdBreak(); AWS_MEDIATAILOR_API AdBreak(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIATAILOR_API AdBreak& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIATAILOR_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Defines a list of key/value pairs that MediaTailor generates within the * EXT-X-ASSETtag for SCTE35_ENHANCED output.

*/ inline const Aws::Vector& GetAdBreakMetadata() const{ return m_adBreakMetadata; } /** *

Defines a list of key/value pairs that MediaTailor generates within the * EXT-X-ASSETtag for SCTE35_ENHANCED output.

*/ inline bool AdBreakMetadataHasBeenSet() const { return m_adBreakMetadataHasBeenSet; } /** *

Defines a list of key/value pairs that MediaTailor generates within the * EXT-X-ASSETtag for SCTE35_ENHANCED output.

*/ inline void SetAdBreakMetadata(const Aws::Vector& value) { m_adBreakMetadataHasBeenSet = true; m_adBreakMetadata = value; } /** *

Defines a list of key/value pairs that MediaTailor generates within the * EXT-X-ASSETtag for SCTE35_ENHANCED output.

*/ inline void SetAdBreakMetadata(Aws::Vector&& value) { m_adBreakMetadataHasBeenSet = true; m_adBreakMetadata = std::move(value); } /** *

Defines a list of key/value pairs that MediaTailor generates within the * EXT-X-ASSETtag for SCTE35_ENHANCED output.

*/ inline AdBreak& WithAdBreakMetadata(const Aws::Vector& value) { SetAdBreakMetadata(value); return *this;} /** *

Defines a list of key/value pairs that MediaTailor generates within the * EXT-X-ASSETtag for SCTE35_ENHANCED output.

*/ inline AdBreak& WithAdBreakMetadata(Aws::Vector&& value) { SetAdBreakMetadata(std::move(value)); return *this;} /** *

Defines a list of key/value pairs that MediaTailor generates within the * EXT-X-ASSETtag for SCTE35_ENHANCED output.

*/ inline AdBreak& AddAdBreakMetadata(const KeyValuePair& value) { m_adBreakMetadataHasBeenSet = true; m_adBreakMetadata.push_back(value); return *this; } /** *

Defines a list of key/value pairs that MediaTailor generates within the * EXT-X-ASSETtag for SCTE35_ENHANCED output.

*/ inline AdBreak& AddAdBreakMetadata(KeyValuePair&& value) { m_adBreakMetadataHasBeenSet = true; m_adBreakMetadata.push_back(std::move(value)); return *this; } /** *

The SCTE-35 ad insertion type. Accepted value: SPLICE_INSERT, * TIME_SIGNAL.

*/ inline const MessageType& GetMessageType() const{ return m_messageType; } /** *

The SCTE-35 ad insertion type. Accepted value: SPLICE_INSERT, * TIME_SIGNAL.

*/ inline bool MessageTypeHasBeenSet() const { return m_messageTypeHasBeenSet; } /** *

The SCTE-35 ad insertion type. Accepted value: SPLICE_INSERT, * TIME_SIGNAL.

*/ inline void SetMessageType(const MessageType& value) { m_messageTypeHasBeenSet = true; m_messageType = value; } /** *

The SCTE-35 ad insertion type. Accepted value: SPLICE_INSERT, * TIME_SIGNAL.

*/ inline void SetMessageType(MessageType&& value) { m_messageTypeHasBeenSet = true; m_messageType = std::move(value); } /** *

The SCTE-35 ad insertion type. Accepted value: SPLICE_INSERT, * TIME_SIGNAL.

*/ inline AdBreak& WithMessageType(const MessageType& value) { SetMessageType(value); return *this;} /** *

The SCTE-35 ad insertion type. Accepted value: SPLICE_INSERT, * TIME_SIGNAL.

*/ inline AdBreak& WithMessageType(MessageType&& value) { SetMessageType(std::move(value)); return *this;} /** *

How long (in milliseconds) after the beginning of the program that an ad * starts. This value must fall within 100ms of a segment boundary, otherwise the * ad break will be skipped.

*/ inline long long GetOffsetMillis() const{ return m_offsetMillis; } /** *

How long (in milliseconds) after the beginning of the program that an ad * starts. This value must fall within 100ms of a segment boundary, otherwise the * ad break will be skipped.

*/ inline bool OffsetMillisHasBeenSet() const { return m_offsetMillisHasBeenSet; } /** *

How long (in milliseconds) after the beginning of the program that an ad * starts. This value must fall within 100ms of a segment boundary, otherwise the * ad break will be skipped.

*/ inline void SetOffsetMillis(long long value) { m_offsetMillisHasBeenSet = true; m_offsetMillis = value; } /** *

How long (in milliseconds) after the beginning of the program that an ad * starts. This value must fall within 100ms of a segment boundary, otherwise the * ad break will be skipped.

*/ inline AdBreak& WithOffsetMillis(long long value) { SetOffsetMillis(value); return *this;} /** *

Ad break slate configuration.

*/ inline const SlateSource& GetSlate() const{ return m_slate; } /** *

Ad break slate configuration.

*/ inline bool SlateHasBeenSet() const { return m_slateHasBeenSet; } /** *

Ad break slate configuration.

*/ inline void SetSlate(const SlateSource& value) { m_slateHasBeenSet = true; m_slate = value; } /** *

Ad break slate configuration.

*/ inline void SetSlate(SlateSource&& value) { m_slateHasBeenSet = true; m_slate = std::move(value); } /** *

Ad break slate configuration.

*/ inline AdBreak& WithSlate(const SlateSource& value) { SetSlate(value); return *this;} /** *

Ad break slate configuration.

*/ inline AdBreak& WithSlate(SlateSource&& value) { SetSlate(std::move(value)); return *this;} /** *

This defines the SCTE-35 splice_insert() message inserted around * the ad. For information about using splice_insert(), see the * SCTE-35 specficiaiton, section 9.7.3.1.

*/ inline const SpliceInsertMessage& GetSpliceInsertMessage() const{ return m_spliceInsertMessage; } /** *

This defines the SCTE-35 splice_insert() message inserted around * the ad. For information about using splice_insert(), see the * SCTE-35 specficiaiton, section 9.7.3.1.

*/ inline bool SpliceInsertMessageHasBeenSet() const { return m_spliceInsertMessageHasBeenSet; } /** *

This defines the SCTE-35 splice_insert() message inserted around * the ad. For information about using splice_insert(), see the * SCTE-35 specficiaiton, section 9.7.3.1.

*/ inline void SetSpliceInsertMessage(const SpliceInsertMessage& value) { m_spliceInsertMessageHasBeenSet = true; m_spliceInsertMessage = value; } /** *

This defines the SCTE-35 splice_insert() message inserted around * the ad. For information about using splice_insert(), see the * SCTE-35 specficiaiton, section 9.7.3.1.

*/ inline void SetSpliceInsertMessage(SpliceInsertMessage&& value) { m_spliceInsertMessageHasBeenSet = true; m_spliceInsertMessage = std::move(value); } /** *

This defines the SCTE-35 splice_insert() message inserted around * the ad. For information about using splice_insert(), see the * SCTE-35 specficiaiton, section 9.7.3.1.

*/ inline AdBreak& WithSpliceInsertMessage(const SpliceInsertMessage& value) { SetSpliceInsertMessage(value); return *this;} /** *

This defines the SCTE-35 splice_insert() message inserted around * the ad. For information about using splice_insert(), see the * SCTE-35 specficiaiton, section 9.7.3.1.

*/ inline AdBreak& WithSpliceInsertMessage(SpliceInsertMessage&& value) { SetSpliceInsertMessage(std::move(value)); return *this;} /** *

Defines the SCTE-35 time_signal message inserted around the * ad.

Programs on a channel's schedule can be configured with one or more * ad breaks. You can attach a splice_insert SCTE-35 message to the ad * break. This message provides basic metadata about the ad break.

See * section 9.7.4 of the 2022 SCTE-35 specification for more information.

*/ inline const TimeSignalMessage& GetTimeSignalMessage() const{ return m_timeSignalMessage; } /** *

Defines the SCTE-35 time_signal message inserted around the * ad.

Programs on a channel's schedule can be configured with one or more * ad breaks. You can attach a splice_insert SCTE-35 message to the ad * break. This message provides basic metadata about the ad break.

See * section 9.7.4 of the 2022 SCTE-35 specification for more information.

*/ inline bool TimeSignalMessageHasBeenSet() const { return m_timeSignalMessageHasBeenSet; } /** *

Defines the SCTE-35 time_signal message inserted around the * ad.

Programs on a channel's schedule can be configured with one or more * ad breaks. You can attach a splice_insert SCTE-35 message to the ad * break. This message provides basic metadata about the ad break.

See * section 9.7.4 of the 2022 SCTE-35 specification for more information.

*/ inline void SetTimeSignalMessage(const TimeSignalMessage& value) { m_timeSignalMessageHasBeenSet = true; m_timeSignalMessage = value; } /** *

Defines the SCTE-35 time_signal message inserted around the * ad.

Programs on a channel's schedule can be configured with one or more * ad breaks. You can attach a splice_insert SCTE-35 message to the ad * break. This message provides basic metadata about the ad break.

See * section 9.7.4 of the 2022 SCTE-35 specification for more information.

*/ inline void SetTimeSignalMessage(TimeSignalMessage&& value) { m_timeSignalMessageHasBeenSet = true; m_timeSignalMessage = std::move(value); } /** *

Defines the SCTE-35 time_signal message inserted around the * ad.

Programs on a channel's schedule can be configured with one or more * ad breaks. You can attach a splice_insert SCTE-35 message to the ad * break. This message provides basic metadata about the ad break.

See * section 9.7.4 of the 2022 SCTE-35 specification for more information.

*/ inline AdBreak& WithTimeSignalMessage(const TimeSignalMessage& value) { SetTimeSignalMessage(value); return *this;} /** *

Defines the SCTE-35 time_signal message inserted around the * ad.

Programs on a channel's schedule can be configured with one or more * ad breaks. You can attach a splice_insert SCTE-35 message to the ad * break. This message provides basic metadata about the ad break.

See * section 9.7.4 of the 2022 SCTE-35 specification for more information.

*/ inline AdBreak& WithTimeSignalMessage(TimeSignalMessage&& value) { SetTimeSignalMessage(std::move(value)); return *this;} private: Aws::Vector m_adBreakMetadata; bool m_adBreakMetadataHasBeenSet = false; MessageType m_messageType; bool m_messageTypeHasBeenSet = false; long long m_offsetMillis; bool m_offsetMillisHasBeenSet = false; SlateSource m_slate; bool m_slateHasBeenSet = false; SpliceInsertMessage m_spliceInsertMessage; bool m_spliceInsertMessageHasBeenSet = false; TimeSignalMessage m_timeSignalMessage; bool m_timeSignalMessageHasBeenSet = false; }; } // namespace Model } // namespace MediaTailor } // namespace Aws