/** * 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 #include namespace Aws { namespace MediaTailor { namespace Model { /** */ class CreateChannelRequest : public MediaTailorRequest { public: AWS_MEDIATAILOR_API CreateChannelRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateChannel"; } AWS_MEDIATAILOR_API Aws::String SerializePayload() const override; /** *

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 CreateChannelRequest& WithChannelName(const Aws::String& value) { SetChannelName(value); return *this;} /** *

The name of the channel.

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

The name of the channel.

*/ inline CreateChannelRequest& WithChannelName(const char* value) { SetChannelName(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 CreateChannelRequest& 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 CreateChannelRequest& WithFillerSlate(SlateSource&& value) { SetFillerSlate(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 CreateChannelRequest& WithOutputs(const Aws::Vector& value) { SetOutputs(value); return *this;} /** *

The channel's output properties.

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

The channel's output properties.

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

The channel's output properties.

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

The type of playback mode to use for this channel.

* LINEAR - The programs in the schedule play once back-to-back in the * schedule.

LOOP - The programs in the schedule play * back-to-back in an endless loop. When the last program in the schedule stops * playing, playback loops back to the first program in the schedule.

*/ inline const PlaybackMode& GetPlaybackMode() const{ return m_playbackMode; } /** *

The type of playback mode to use for this channel.

* LINEAR - The programs in the schedule play once back-to-back in the * schedule.

LOOP - The programs in the schedule play * back-to-back in an endless loop. When the last program in the schedule stops * playing, playback loops back to the first program in the schedule.

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

The type of playback mode to use for this channel.

* LINEAR - The programs in the schedule play once back-to-back in the * schedule.

LOOP - The programs in the schedule play * back-to-back in an endless loop. When the last program in the schedule stops * playing, playback loops back to the first program in the schedule.

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

The type of playback mode to use for this channel.

* LINEAR - The programs in the schedule play once back-to-back in the * schedule.

LOOP - The programs in the schedule play * back-to-back in an endless loop. When the last program in the schedule stops * playing, playback loops back to the first program in the schedule.

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

The type of playback mode to use for this channel.

* LINEAR - The programs in the schedule play once back-to-back in the * schedule.

LOOP - The programs in the schedule play * back-to-back in an endless loop. When the last program in the schedule stops * playing, playback loops back to the first program in the schedule.

*/ inline CreateChannelRequest& WithPlaybackMode(const PlaybackMode& value) { SetPlaybackMode(value); return *this;} /** *

The type of playback mode to use for this channel.

* LINEAR - The programs in the schedule play once back-to-back in the * schedule.

LOOP - The programs in the schedule play * back-to-back in an endless loop. When the last program in the schedule stops * playing, playback loops back to the first program in the schedule.

*/ inline CreateChannelRequest& WithPlaybackMode(PlaybackMode&& value) { SetPlaybackMode(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 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 CreateChannelRequest& 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 CreateChannelRequest& 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 CreateChannelRequest& 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 CreateChannelRequest& 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 CreateChannelRequest& 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 CreateChannelRequest& 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 CreateChannelRequest& 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 CreateChannelRequest& 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 CreateChannelRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The tier of the channel.

*/ inline const Tier& GetTier() const{ return m_tier; } /** *

The tier of the channel.

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

The tier of the channel.

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

The tier of the channel.

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

The tier of the channel.

*/ inline CreateChannelRequest& WithTier(const Tier& value) { SetTier(value); return *this;} /** *

The tier of the channel.

*/ inline CreateChannelRequest& WithTier(Tier&& value) { SetTier(std::move(value)); return *this;} private: Aws::String m_channelName; bool m_channelNameHasBeenSet = false; SlateSource m_fillerSlate; bool m_fillerSlateHasBeenSet = false; Aws::Vector m_outputs; bool m_outputsHasBeenSet = false; PlaybackMode m_playbackMode; bool m_playbackModeHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Tier m_tier; bool m_tierHasBeenSet = false; }; } // namespace Model } // namespace MediaTailor } // namespace Aws