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

Program transition configuration.

See Also:

AWS * API Reference

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

The duration of the live program in seconds.

*/ inline long long GetDurationMillis() const{ return m_durationMillis; } /** *

The duration of the live program in seconds.

*/ inline bool DurationMillisHasBeenSet() const { return m_durationMillisHasBeenSet; } /** *

The duration of the live program in seconds.

*/ inline void SetDurationMillis(long long value) { m_durationMillisHasBeenSet = true; m_durationMillis = value; } /** *

The duration of the live program in seconds.

*/ inline Transition& WithDurationMillis(long long value) { SetDurationMillis(value); return *this;} /** *

The position where this program will be inserted relative to the * RelativePosition.

*/ inline const RelativePosition& GetRelativePosition() const{ return m_relativePosition; } /** *

The position where this program will be inserted relative to the * RelativePosition.

*/ inline bool RelativePositionHasBeenSet() const { return m_relativePositionHasBeenSet; } /** *

The position where this program will be inserted relative to the * RelativePosition.

*/ inline void SetRelativePosition(const RelativePosition& value) { m_relativePositionHasBeenSet = true; m_relativePosition = value; } /** *

The position where this program will be inserted relative to the * RelativePosition.

*/ inline void SetRelativePosition(RelativePosition&& value) { m_relativePositionHasBeenSet = true; m_relativePosition = std::move(value); } /** *

The position where this program will be inserted relative to the * RelativePosition.

*/ inline Transition& WithRelativePosition(const RelativePosition& value) { SetRelativePosition(value); return *this;} /** *

The position where this program will be inserted relative to the * RelativePosition.

*/ inline Transition& WithRelativePosition(RelativePosition&& value) { SetRelativePosition(std::move(value)); return *this;} /** *

The name of the program that this program will be inserted next to, as * defined by RelativePosition.

*/ inline const Aws::String& GetRelativeProgram() const{ return m_relativeProgram; } /** *

The name of the program that this program will be inserted next to, as * defined by RelativePosition.

*/ inline bool RelativeProgramHasBeenSet() const { return m_relativeProgramHasBeenSet; } /** *

The name of the program that this program will be inserted next to, as * defined by RelativePosition.

*/ inline void SetRelativeProgram(const Aws::String& value) { m_relativeProgramHasBeenSet = true; m_relativeProgram = value; } /** *

The name of the program that this program will be inserted next to, as * defined by RelativePosition.

*/ inline void SetRelativeProgram(Aws::String&& value) { m_relativeProgramHasBeenSet = true; m_relativeProgram = std::move(value); } /** *

The name of the program that this program will be inserted next to, as * defined by RelativePosition.

*/ inline void SetRelativeProgram(const char* value) { m_relativeProgramHasBeenSet = true; m_relativeProgram.assign(value); } /** *

The name of the program that this program will be inserted next to, as * defined by RelativePosition.

*/ inline Transition& WithRelativeProgram(const Aws::String& value) { SetRelativeProgram(value); return *this;} /** *

The name of the program that this program will be inserted next to, as * defined by RelativePosition.

*/ inline Transition& WithRelativeProgram(Aws::String&& value) { SetRelativeProgram(std::move(value)); return *this;} /** *

The name of the program that this program will be inserted next to, as * defined by RelativePosition.

*/ inline Transition& WithRelativeProgram(const char* value) { SetRelativeProgram(value); return *this;} /** *

The date and time that the program is scheduled to start, in epoch * milliseconds.

*/ inline long long GetScheduledStartTimeMillis() const{ return m_scheduledStartTimeMillis; } /** *

The date and time that the program is scheduled to start, in epoch * milliseconds.

*/ inline bool ScheduledStartTimeMillisHasBeenSet() const { return m_scheduledStartTimeMillisHasBeenSet; } /** *

The date and time that the program is scheduled to start, in epoch * milliseconds.

*/ inline void SetScheduledStartTimeMillis(long long value) { m_scheduledStartTimeMillisHasBeenSet = true; m_scheduledStartTimeMillis = value; } /** *

The date and time that the program is scheduled to start, in epoch * milliseconds.

*/ inline Transition& WithScheduledStartTimeMillis(long long value) { SetScheduledStartTimeMillis(value); return *this;} /** *

Defines when the program plays in the schedule. You can set the value to * ABSOLUTE or RELATIVE.

ABSOLUTE - * The program plays at a specific wall clock time. This setting can only be used * for channels using the LINEAR PlaybackMode.

*

Note the following considerations when using ABSOLUTE * transitions:

If the preceding program in the schedule has a duration that * extends past the wall clock time, MediaTailor truncates the preceding program on * a common segment boundary.

If there are gaps in playback, MediaTailor * plays the FillerSlate you configured for your linear channel.

*

RELATIVE - The program is inserted into the schedule either * before or after a program that you specify via * RelativePosition.

*/ inline const Aws::String& GetType() const{ return m_type; } /** *

Defines when the program plays in the schedule. You can set the value to * ABSOLUTE or RELATIVE.

ABSOLUTE - * The program plays at a specific wall clock time. This setting can only be used * for channels using the LINEAR PlaybackMode.

*

Note the following considerations when using ABSOLUTE * transitions:

If the preceding program in the schedule has a duration that * extends past the wall clock time, MediaTailor truncates the preceding program on * a common segment boundary.

If there are gaps in playback, MediaTailor * plays the FillerSlate you configured for your linear channel.

*

RELATIVE - The program is inserted into the schedule either * before or after a program that you specify via * RelativePosition.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

Defines when the program plays in the schedule. You can set the value to * ABSOLUTE or RELATIVE.

ABSOLUTE - * The program plays at a specific wall clock time. This setting can only be used * for channels using the LINEAR PlaybackMode.

*

Note the following considerations when using ABSOLUTE * transitions:

If the preceding program in the schedule has a duration that * extends past the wall clock time, MediaTailor truncates the preceding program on * a common segment boundary.

If there are gaps in playback, MediaTailor * plays the FillerSlate you configured for your linear channel.

*

RELATIVE - The program is inserted into the schedule either * before or after a program that you specify via * RelativePosition.

*/ inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; } /** *

Defines when the program plays in the schedule. You can set the value to * ABSOLUTE or RELATIVE.

ABSOLUTE - * The program plays at a specific wall clock time. This setting can only be used * for channels using the LINEAR PlaybackMode.

*

Note the following considerations when using ABSOLUTE * transitions:

If the preceding program in the schedule has a duration that * extends past the wall clock time, MediaTailor truncates the preceding program on * a common segment boundary.

If there are gaps in playback, MediaTailor * plays the FillerSlate you configured for your linear channel.

*

RELATIVE - The program is inserted into the schedule either * before or after a program that you specify via * RelativePosition.

*/ inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

Defines when the program plays in the schedule. You can set the value to * ABSOLUTE or RELATIVE.

ABSOLUTE - * The program plays at a specific wall clock time. This setting can only be used * for channels using the LINEAR PlaybackMode.

*

Note the following considerations when using ABSOLUTE * transitions:

If the preceding program in the schedule has a duration that * extends past the wall clock time, MediaTailor truncates the preceding program on * a common segment boundary.

If there are gaps in playback, MediaTailor * plays the FillerSlate you configured for your linear channel.

*

RELATIVE - The program is inserted into the schedule either * before or after a program that you specify via * RelativePosition.

*/ inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); } /** *

Defines when the program plays in the schedule. You can set the value to * ABSOLUTE or RELATIVE.

ABSOLUTE - * The program plays at a specific wall clock time. This setting can only be used * for channels using the LINEAR PlaybackMode.

*

Note the following considerations when using ABSOLUTE * transitions:

If the preceding program in the schedule has a duration that * extends past the wall clock time, MediaTailor truncates the preceding program on * a common segment boundary.

If there are gaps in playback, MediaTailor * plays the FillerSlate you configured for your linear channel.

*

RELATIVE - The program is inserted into the schedule either * before or after a program that you specify via * RelativePosition.

*/ inline Transition& WithType(const Aws::String& value) { SetType(value); return *this;} /** *

Defines when the program plays in the schedule. You can set the value to * ABSOLUTE or RELATIVE.

ABSOLUTE - * The program plays at a specific wall clock time. This setting can only be used * for channels using the LINEAR PlaybackMode.

*

Note the following considerations when using ABSOLUTE * transitions:

If the preceding program in the schedule has a duration that * extends past the wall clock time, MediaTailor truncates the preceding program on * a common segment boundary.

If there are gaps in playback, MediaTailor * plays the FillerSlate you configured for your linear channel.

*

RELATIVE - The program is inserted into the schedule either * before or after a program that you specify via * RelativePosition.

*/ inline Transition& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;} /** *

Defines when the program plays in the schedule. You can set the value to * ABSOLUTE or RELATIVE.

ABSOLUTE - * The program plays at a specific wall clock time. This setting can only be used * for channels using the LINEAR PlaybackMode.

*

Note the following considerations when using ABSOLUTE * transitions:

If the preceding program in the schedule has a duration that * extends past the wall clock time, MediaTailor truncates the preceding program on * a common segment boundary.

If there are gaps in playback, MediaTailor * plays the FillerSlate you configured for your linear channel.

*

RELATIVE - The program is inserted into the schedule either * before or after a program that you specify via * RelativePosition.

*/ inline Transition& WithType(const char* value) { SetType(value); return *this;} private: long long m_durationMillis; bool m_durationMillisHasBeenSet = false; RelativePosition m_relativePosition; bool m_relativePositionHasBeenSet = false; Aws::String m_relativeProgram; bool m_relativeProgramHasBeenSet = false; long long m_scheduledStartTimeMillis; bool m_scheduledStartTimeMillisHasBeenSet = false; Aws::String m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace MediaTailor } // namespace Aws