/** * 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 #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace MediaTailor { namespace Model { /** *

The configuration parameters for a channel. For information about MediaTailor * channels, see Working * with channels in the MediaTailor User Guide.

See Also:

* AWS * API Reference

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

The ARN of the channel.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The ARN of the channel.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The ARN of the channel.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The ARN of the channel.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The ARN of the channel.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The ARN of the channel.

*/ inline Channel& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The ARN of the channel.

*/ inline Channel& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The ARN of the channel.

*/ inline Channel& WithArn(const char* value) { SetArn(value); return *this;} /** *

The name of the channel.

*/ inline const Aws::String& GetChannelName() const{ return m_channelName; } /** *

The name of the channel.

*/ inline bool ChannelNameHasBeenSet() const { return m_channelNameHasBeenSet; } /** *

The name of the channel.

*/ inline void SetChannelName(const Aws::String& value) { m_channelNameHasBeenSet = true; m_channelName = value; } /** *

The name of the channel.

*/ inline void SetChannelName(Aws::String&& value) { m_channelNameHasBeenSet = true; m_channelName = std::move(value); } /** *

The name of the channel.

*/ inline void SetChannelName(const char* value) { m_channelNameHasBeenSet = true; m_channelName.assign(value); } /** *

The name of the channel.

*/ inline Channel& WithChannelName(const Aws::String& value) { SetChannelName(value); return *this;} /** *

The name of the channel.

*/ inline Channel& WithChannelName(Aws::String&& value) { SetChannelName(std::move(value)); return *this;} /** *

The name of the channel.

*/ inline Channel& WithChannelName(const char* value) { SetChannelName(value); return *this;} /** *

Returns the state whether the channel is running or not.

*/ inline const Aws::String& GetChannelState() const{ return m_channelState; } /** *

Returns the state whether the channel is running or not.

*/ inline bool ChannelStateHasBeenSet() const { return m_channelStateHasBeenSet; } /** *

Returns the state whether the channel is running or not.

*/ inline void SetChannelState(const Aws::String& value) { m_channelStateHasBeenSet = true; m_channelState = value; } /** *

Returns the state whether the channel is running or not.

*/ inline void SetChannelState(Aws::String&& value) { m_channelStateHasBeenSet = true; m_channelState = std::move(value); } /** *

Returns the state whether the channel is running or not.

*/ inline void SetChannelState(const char* value) { m_channelStateHasBeenSet = true; m_channelState.assign(value); } /** *

Returns the state whether the channel is running or not.

*/ inline Channel& WithChannelState(const Aws::String& value) { SetChannelState(value); return *this;} /** *

Returns the state whether the channel is running or not.

*/ inline Channel& WithChannelState(Aws::String&& value) { SetChannelState(std::move(value)); return *this;} /** *

Returns the state whether the channel is running or not.

*/ inline Channel& WithChannelState(const char* value) { SetChannelState(value); return *this;} /** *

The timestamp of when the channel was created.

*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } /** *

The timestamp of when the channel was created.

*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *

The timestamp of when the channel was created.

*/ inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

The timestamp of when the channel was created.

*/ inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } /** *

The timestamp of when the channel was created.

*/ inline Channel& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} /** *

The timestamp of when the channel was created.

*/ inline Channel& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The slate used to fill gaps between programs in the schedule. You must * configure filler slate if your channel uses the LINEAR * PlaybackMode. MediaTailor doesn't support filler slate for channels * using the LOOP PlaybackMode.

*/ inline const SlateSource& GetFillerSlate() const{ return m_fillerSlate; } /** *

The slate used to fill gaps between programs in the schedule. You must * configure filler slate if your channel uses the LINEAR * PlaybackMode. MediaTailor doesn't support filler slate for channels * using the LOOP PlaybackMode.

*/ inline bool FillerSlateHasBeenSet() const { return m_fillerSlateHasBeenSet; } /** *

The slate used to fill gaps between programs in the schedule. You must * configure filler slate if your channel uses the LINEAR * PlaybackMode. MediaTailor doesn't support filler slate for channels * using the LOOP PlaybackMode.

*/ inline void SetFillerSlate(const SlateSource& value) { m_fillerSlateHasBeenSet = true; m_fillerSlate = value; } /** *

The slate used to fill gaps between programs in the schedule. You must * configure filler slate if your channel uses the LINEAR * PlaybackMode. MediaTailor doesn't support filler slate for channels * using the LOOP PlaybackMode.

*/ inline void SetFillerSlate(SlateSource&& value) { m_fillerSlateHasBeenSet = true; m_fillerSlate = std::move(value); } /** *

The slate used to fill gaps between programs in the schedule. You must * configure filler slate if your channel uses the LINEAR * PlaybackMode. MediaTailor doesn't support filler slate for channels * using the LOOP PlaybackMode.

*/ inline Channel& WithFillerSlate(const SlateSource& value) { SetFillerSlate(value); return *this;} /** *

The slate used to fill gaps between programs in the schedule. You must * configure filler slate if your channel uses the LINEAR * PlaybackMode. MediaTailor doesn't support filler slate for channels * using the LOOP PlaybackMode.

*/ inline Channel& WithFillerSlate(SlateSource&& value) { SetFillerSlate(std::move(value)); return *this;} /** *

The timestamp of when the channel was last modified.

*/ inline const Aws::Utils::DateTime& GetLastModifiedTime() const{ return m_lastModifiedTime; } /** *

The timestamp of when the channel was last modified.

*/ inline bool LastModifiedTimeHasBeenSet() const { return m_lastModifiedTimeHasBeenSet; } /** *

The timestamp of when the channel was last modified.

*/ inline void SetLastModifiedTime(const Aws::Utils::DateTime& value) { m_lastModifiedTimeHasBeenSet = true; m_lastModifiedTime = value; } /** *

The timestamp of when the channel was last modified.

*/ inline void SetLastModifiedTime(Aws::Utils::DateTime&& value) { m_lastModifiedTimeHasBeenSet = true; m_lastModifiedTime = std::move(value); } /** *

The timestamp of when the channel was last modified.

*/ inline Channel& WithLastModifiedTime(const Aws::Utils::DateTime& value) { SetLastModifiedTime(value); return *this;} /** *

The timestamp of when the channel was last modified.

*/ inline Channel& WithLastModifiedTime(Aws::Utils::DateTime&& value) { SetLastModifiedTime(std::move(value)); return *this;} /** *

The log configuration.

*/ inline const LogConfigurationForChannel& GetLogConfiguration() const{ return m_logConfiguration; } /** *

The log configuration.

*/ inline bool LogConfigurationHasBeenSet() const { return m_logConfigurationHasBeenSet; } /** *

The log configuration.

*/ inline void SetLogConfiguration(const LogConfigurationForChannel& value) { m_logConfigurationHasBeenSet = true; m_logConfiguration = value; } /** *

The log configuration.

*/ inline void SetLogConfiguration(LogConfigurationForChannel&& value) { m_logConfigurationHasBeenSet = true; m_logConfiguration = std::move(value); } /** *

The log configuration.

*/ inline Channel& WithLogConfiguration(const LogConfigurationForChannel& value) { SetLogConfiguration(value); return *this;} /** *

The log configuration.

*/ inline Channel& WithLogConfiguration(LogConfigurationForChannel&& value) { SetLogConfiguration(std::move(value)); return *this;} /** *

The channel's output properties.

*/ inline const Aws::Vector& GetOutputs() const{ return m_outputs; } /** *

The channel's output properties.

*/ inline bool OutputsHasBeenSet() const { return m_outputsHasBeenSet; } /** *

The channel's output properties.

*/ inline void SetOutputs(const Aws::Vector& value) { m_outputsHasBeenSet = true; m_outputs = value; } /** *

The channel's output properties.

*/ inline void SetOutputs(Aws::Vector&& value) { m_outputsHasBeenSet = true; m_outputs = std::move(value); } /** *

The channel's output properties.

*/ inline Channel& WithOutputs(const Aws::Vector& value) { SetOutputs(value); return *this;} /** *

The channel's output properties.

*/ inline Channel& WithOutputs(Aws::Vector&& value) { SetOutputs(std::move(value)); return *this;} /** *

The channel's output properties.

*/ inline Channel& AddOutputs(const ResponseOutputItem& value) { m_outputsHasBeenSet = true; m_outputs.push_back(value); return *this; } /** *

The channel's output properties.

*/ inline Channel& AddOutputs(ResponseOutputItem&& value) { m_outputsHasBeenSet = true; m_outputs.push_back(std::move(value)); return *this; } /** *

The type of playback mode for this channel.

LINEAR - * Programs play back-to-back only once.

LOOP - Programs play * back-to-back in an endless loop. When the last program in the schedule plays, * playback loops back to the first program in the schedule.

*/ inline const Aws::String& GetPlaybackMode() const{ return m_playbackMode; } /** *

The type of playback mode for this channel.

LINEAR - * Programs play back-to-back only once.

LOOP - Programs play * back-to-back in an endless loop. When the last program in the schedule plays, * playback loops back to the first program in the schedule.

*/ inline bool PlaybackModeHasBeenSet() const { return m_playbackModeHasBeenSet; } /** *

The type of playback mode for this channel.

LINEAR - * Programs play back-to-back only once.

LOOP - Programs play * back-to-back in an endless loop. When the last program in the schedule plays, * playback loops back to the first program in the schedule.

*/ inline void SetPlaybackMode(const Aws::String& value) { m_playbackModeHasBeenSet = true; m_playbackMode = value; } /** *

The type of playback mode for this channel.

LINEAR - * Programs play back-to-back only once.

LOOP - Programs play * back-to-back in an endless loop. When the last program in the schedule plays, * playback loops back to the first program in the schedule.

*/ inline void SetPlaybackMode(Aws::String&& value) { m_playbackModeHasBeenSet = true; m_playbackMode = std::move(value); } /** *

The type of playback mode for this channel.

LINEAR - * Programs play back-to-back only once.

LOOP - Programs play * back-to-back in an endless loop. When the last program in the schedule plays, * playback loops back to the first program in the schedule.

*/ inline void SetPlaybackMode(const char* value) { m_playbackModeHasBeenSet = true; m_playbackMode.assign(value); } /** *

The type of playback mode for this channel.

LINEAR - * Programs play back-to-back only once.

LOOP - Programs play * back-to-back in an endless loop. When the last program in the schedule plays, * playback loops back to the first program in the schedule.

*/ inline Channel& WithPlaybackMode(const Aws::String& value) { SetPlaybackMode(value); return *this;} /** *

The type of playback mode for this channel.

LINEAR - * Programs play back-to-back only once.

LOOP - Programs play * back-to-back in an endless loop. When the last program in the schedule plays, * playback loops back to the first program in the schedule.

*/ inline Channel& WithPlaybackMode(Aws::String&& value) { SetPlaybackMode(std::move(value)); return *this;} /** *

The type of playback mode for this channel.

LINEAR - * Programs play back-to-back only once.

LOOP - Programs play * back-to-back in an endless loop. When the last program in the schedule plays, * playback loops back to the first program in the schedule.

*/ inline Channel& WithPlaybackMode(const char* value) { SetPlaybackMode(value); return *this;} /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline Channel& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline Channel& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline Channel& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline Channel& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline Channel& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline Channel& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline Channel& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline Channel& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The tags to assign to the channel. Tags are key-value pairs that you can * associate with Amazon resources to help with organization, access control, and * cost tracking. For more information, see Tagging * AWS Elemental MediaTailor Resources.

*/ inline Channel& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The tier for this channel. STANDARD tier channels can contain live * programs.

*/ inline const Aws::String& GetTier() const{ return m_tier; } /** *

The tier for this channel. STANDARD tier channels can contain live * programs.

*/ inline bool TierHasBeenSet() const { return m_tierHasBeenSet; } /** *

The tier for this channel. STANDARD tier channels can contain live * programs.

*/ inline void SetTier(const Aws::String& value) { m_tierHasBeenSet = true; m_tier = value; } /** *

The tier for this channel. STANDARD tier channels can contain live * programs.

*/ inline void SetTier(Aws::String&& value) { m_tierHasBeenSet = true; m_tier = std::move(value); } /** *

The tier for this channel. STANDARD tier channels can contain live * programs.

*/ inline void SetTier(const char* value) { m_tierHasBeenSet = true; m_tier.assign(value); } /** *

The tier for this channel. STANDARD tier channels can contain live * programs.

*/ inline Channel& WithTier(const Aws::String& value) { SetTier(value); return *this;} /** *

The tier for this channel. STANDARD tier channels can contain live * programs.

*/ inline Channel& WithTier(Aws::String&& value) { SetTier(std::move(value)); return *this;} /** *

The tier for this channel. STANDARD tier channels can contain live * programs.

*/ inline Channel& WithTier(const char* value) { SetTier(value); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_channelName; bool m_channelNameHasBeenSet = false; Aws::String m_channelState; bool m_channelStateHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; SlateSource m_fillerSlate; bool m_fillerSlateHasBeenSet = false; Aws::Utils::DateTime m_lastModifiedTime; bool m_lastModifiedTimeHasBeenSet = false; LogConfigurationForChannel m_logConfiguration; bool m_logConfigurationHasBeenSet = false; Aws::Vector m_outputs; bool m_outputsHasBeenSet = false; Aws::String m_playbackMode; bool m_playbackModeHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::String m_tier; bool m_tierHasBeenSet = false; }; } // namespace Model } // namespace MediaTailor } // namespace Aws