/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include <aws/ivs/IVS_EXPORTS.h> #include <aws/ivs/IVSRequest.h> #include <aws/core/utils/memory/stl/AWSString.h> #include <aws/ivs/model/ChannelLatencyMode.h> #include <aws/ivs/model/TranscodePreset.h> #include <aws/ivs/model/ChannelType.h> #include <utility> namespace Aws { namespace IVS { namespace Model { /** */ class UpdateChannelRequest : public IVSRequest { public: AWS_IVS_API UpdateChannelRequest(); // 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 "UpdateChannel"; } AWS_IVS_API Aws::String SerializePayload() const override; /** * <p>ARN of the channel to be updated.</p> */ inline const Aws::String& GetArn() const{ return m_arn; } /** * <p>ARN of the channel to be updated.</p> */ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** * <p>ARN of the channel to be updated.</p> */ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** * <p>ARN of the channel to be updated.</p> */ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** * <p>ARN of the channel to be updated.</p> */ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** * <p>ARN of the channel to be updated.</p> */ inline UpdateChannelRequest& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** * <p>ARN of the channel to be updated.</p> */ inline UpdateChannelRequest& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** * <p>ARN of the channel to be updated.</p> */ inline UpdateChannelRequest& WithArn(const char* value) { SetArn(value); return *this;} /** * <p>Whether the channel is private (enabled for playback authorization).</p> */ inline bool GetAuthorized() const{ return m_authorized; } /** * <p>Whether the channel is private (enabled for playback authorization).</p> */ inline bool AuthorizedHasBeenSet() const { return m_authorizedHasBeenSet; } /** * <p>Whether the channel is private (enabled for playback authorization).</p> */ inline void SetAuthorized(bool value) { m_authorizedHasBeenSet = true; m_authorized = value; } /** * <p>Whether the channel is private (enabled for playback authorization).</p> */ inline UpdateChannelRequest& WithAuthorized(bool value) { SetAuthorized(value); return *this;} /** * <p>Whether the channel allows insecure RTMP ingest. Default: * <code>false</code>.</p> */ inline bool GetInsecureIngest() const{ return m_insecureIngest; } /** * <p>Whether the channel allows insecure RTMP ingest. Default: * <code>false</code>.</p> */ inline bool InsecureIngestHasBeenSet() const { return m_insecureIngestHasBeenSet; } /** * <p>Whether the channel allows insecure RTMP ingest. Default: * <code>false</code>.</p> */ inline void SetInsecureIngest(bool value) { m_insecureIngestHasBeenSet = true; m_insecureIngest = value; } /** * <p>Whether the channel allows insecure RTMP ingest. Default: * <code>false</code>.</p> */ inline UpdateChannelRequest& WithInsecureIngest(bool value) { SetInsecureIngest(value); return *this;} /** * <p>Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live * video up to Full HD. Use <code>LOW</code> for near-real-time interaction with * viewers. (Note: In the Amazon IVS console, <code>LOW</code> and * <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.)</p> */ inline const ChannelLatencyMode& GetLatencyMode() const{ return m_latencyMode; } /** * <p>Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live * video up to Full HD. Use <code>LOW</code> for near-real-time interaction with * viewers. (Note: In the Amazon IVS console, <code>LOW</code> and * <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.)</p> */ inline bool LatencyModeHasBeenSet() const { return m_latencyModeHasBeenSet; } /** * <p>Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live * video up to Full HD. Use <code>LOW</code> for near-real-time interaction with * viewers. (Note: In the Amazon IVS console, <code>LOW</code> and * <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.)</p> */ inline void SetLatencyMode(const ChannelLatencyMode& value) { m_latencyModeHasBeenSet = true; m_latencyMode = value; } /** * <p>Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live * video up to Full HD. Use <code>LOW</code> for near-real-time interaction with * viewers. (Note: In the Amazon IVS console, <code>LOW</code> and * <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.)</p> */ inline void SetLatencyMode(ChannelLatencyMode&& value) { m_latencyModeHasBeenSet = true; m_latencyMode = std::move(value); } /** * <p>Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live * video up to Full HD. Use <code>LOW</code> for near-real-time interaction with * viewers. (Note: In the Amazon IVS console, <code>LOW</code> and * <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.)</p> */ inline UpdateChannelRequest& WithLatencyMode(const ChannelLatencyMode& value) { SetLatencyMode(value); return *this;} /** * <p>Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live * video up to Full HD. Use <code>LOW</code> for near-real-time interaction with * viewers. (Note: In the Amazon IVS console, <code>LOW</code> and * <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.)</p> */ inline UpdateChannelRequest& WithLatencyMode(ChannelLatencyMode&& value) { SetLatencyMode(std::move(value)); return *this;} /** * <p>Channel name.</p> */ inline const Aws::String& GetName() const{ return m_name; } /** * <p>Channel name.</p> */ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** * <p>Channel name.</p> */ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** * <p>Channel name.</p> */ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** * <p>Channel name.</p> */ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** * <p>Channel name.</p> */ inline UpdateChannelRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** * <p>Channel name.</p> */ inline UpdateChannelRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** * <p>Channel name.</p> */ inline UpdateChannelRequest& WithName(const char* value) { SetName(value); return *this;} /** * <p>Optional transcode preset for the channel. This is selectable only for * <code>ADVANCED_HD</code> and <code>ADVANCED_SD</code> channel types. For those * channel types, the default <code>preset</code> is * <code>HIGHER_BANDWIDTH_DELIVERY</code>. For other channel types * (<code>BASIC</code> and <code>STANDARD</code>), <code>preset</code> is the empty * string (<code>""</code>).</p> */ inline const TranscodePreset& GetPreset() const{ return m_preset; } /** * <p>Optional transcode preset for the channel. This is selectable only for * <code>ADVANCED_HD</code> and <code>ADVANCED_SD</code> channel types. For those * channel types, the default <code>preset</code> is * <code>HIGHER_BANDWIDTH_DELIVERY</code>. For other channel types * (<code>BASIC</code> and <code>STANDARD</code>), <code>preset</code> is the empty * string (<code>""</code>).</p> */ inline bool PresetHasBeenSet() const { return m_presetHasBeenSet; } /** * <p>Optional transcode preset for the channel. This is selectable only for * <code>ADVANCED_HD</code> and <code>ADVANCED_SD</code> channel types. For those * channel types, the default <code>preset</code> is * <code>HIGHER_BANDWIDTH_DELIVERY</code>. For other channel types * (<code>BASIC</code> and <code>STANDARD</code>), <code>preset</code> is the empty * string (<code>""</code>).</p> */ inline void SetPreset(const TranscodePreset& value) { m_presetHasBeenSet = true; m_preset = value; } /** * <p>Optional transcode preset for the channel. This is selectable only for * <code>ADVANCED_HD</code> and <code>ADVANCED_SD</code> channel types. For those * channel types, the default <code>preset</code> is * <code>HIGHER_BANDWIDTH_DELIVERY</code>. For other channel types * (<code>BASIC</code> and <code>STANDARD</code>), <code>preset</code> is the empty * string (<code>""</code>).</p> */ inline void SetPreset(TranscodePreset&& value) { m_presetHasBeenSet = true; m_preset = std::move(value); } /** * <p>Optional transcode preset for the channel. This is selectable only for * <code>ADVANCED_HD</code> and <code>ADVANCED_SD</code> channel types. For those * channel types, the default <code>preset</code> is * <code>HIGHER_BANDWIDTH_DELIVERY</code>. For other channel types * (<code>BASIC</code> and <code>STANDARD</code>), <code>preset</code> is the empty * string (<code>""</code>).</p> */ inline UpdateChannelRequest& WithPreset(const TranscodePreset& value) { SetPreset(value); return *this;} /** * <p>Optional transcode preset for the channel. This is selectable only for * <code>ADVANCED_HD</code> and <code>ADVANCED_SD</code> channel types. For those * channel types, the default <code>preset</code> is * <code>HIGHER_BANDWIDTH_DELIVERY</code>. For other channel types * (<code>BASIC</code> and <code>STANDARD</code>), <code>preset</code> is the empty * string (<code>""</code>).</p> */ inline UpdateChannelRequest& WithPreset(TranscodePreset&& value) { SetPreset(std::move(value)); return *this;} /** * <p>Recording-configuration ARN. If this is set to an empty string, recording is * disabled. A value other than an empty string indicates that recording is * enabled</p> */ inline const Aws::String& GetRecordingConfigurationArn() const{ return m_recordingConfigurationArn; } /** * <p>Recording-configuration ARN. If this is set to an empty string, recording is * disabled. A value other than an empty string indicates that recording is * enabled</p> */ inline bool RecordingConfigurationArnHasBeenSet() const { return m_recordingConfigurationArnHasBeenSet; } /** * <p>Recording-configuration ARN. If this is set to an empty string, recording is * disabled. A value other than an empty string indicates that recording is * enabled</p> */ inline void SetRecordingConfigurationArn(const Aws::String& value) { m_recordingConfigurationArnHasBeenSet = true; m_recordingConfigurationArn = value; } /** * <p>Recording-configuration ARN. If this is set to an empty string, recording is * disabled. A value other than an empty string indicates that recording is * enabled</p> */ inline void SetRecordingConfigurationArn(Aws::String&& value) { m_recordingConfigurationArnHasBeenSet = true; m_recordingConfigurationArn = std::move(value); } /** * <p>Recording-configuration ARN. If this is set to an empty string, recording is * disabled. A value other than an empty string indicates that recording is * enabled</p> */ inline void SetRecordingConfigurationArn(const char* value) { m_recordingConfigurationArnHasBeenSet = true; m_recordingConfigurationArn.assign(value); } /** * <p>Recording-configuration ARN. If this is set to an empty string, recording is * disabled. A value other than an empty string indicates that recording is * enabled</p> */ inline UpdateChannelRequest& WithRecordingConfigurationArn(const Aws::String& value) { SetRecordingConfigurationArn(value); return *this;} /** * <p>Recording-configuration ARN. If this is set to an empty string, recording is * disabled. A value other than an empty string indicates that recording is * enabled</p> */ inline UpdateChannelRequest& WithRecordingConfigurationArn(Aws::String&& value) { SetRecordingConfigurationArn(std::move(value)); return *this;} /** * <p>Recording-configuration ARN. If this is set to an empty string, recording is * disabled. A value other than an empty string indicates that recording is * enabled</p> */ inline UpdateChannelRequest& WithRecordingConfigurationArn(const char* value) { SetRecordingConfigurationArn(value); return *this;} /** * <p>Channel type, which determines the allowable resolution and bitrate. <i>If * you exceed the allowable input resolution or bitrate, the stream probably will * disconnect immediately.</i> Some types generate multiple qualities (renditions) * from the original input; this automatically gives viewers the best experience * for their devices and network conditions. Some types provide transcoded video; * transcoding allows higher playback quality across a range of download speeds. * Default: <code>STANDARD</code>. Valid values:</p> <ul> <li> <p> * <code>BASIC</code>: Video is transmuxed: Amazon IVS delivers the original input * quality to viewers. The viewer’s video-quality choice is limited to the original * input. Input resolution can be up to 1080p and bitrate can be up to 1.5 Mbps for * 480p and up to 3.5 Mbps for resolutions between 480p and 1080p. Original audio * is passed through.</p> </li> <li> <p> <code>STANDARD</code>: Video is * transcoded: multiple qualities are generated from the original input, to * automatically give viewers the best experience for their devices and network * conditions. Transcoding allows higher playback quality across a range of * download speeds. Resolution can be up to 1080p and bitrate can be up to 8.5 * Mbps. Audio is transcoded only for renditions 360p and below; above that, audio * is passed through. This is the default when you create a channel.</p> </li> <li> * <p> <code>ADVANCED_SD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at SD quality * (480p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * <li> <p> <code>ADVANCED_HD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at HD quality * (720p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * </ul> <p>Optional <i>transcode presets</i> (available for the * <code>ADVANCED</code> types) allow you to trade off available download bandwidth * and video quality, to optimize the viewing experience. There are two * presets:</p> <ul> <li> <p> <i>Constrained bandwidth delivery</i> uses a lower * bitrate for each quality level. Use it if you have low download bandwidth and/or * simple video content (e.g., talking heads)</p> </li> <li> <p> <i>Higher * bandwidth delivery</i> uses a higher bitrate for each quality level. Use it if * you have high download bandwidth and/or complex video content (e.g., flashes and * quick scene changes).</p> </li> </ul> */ inline const ChannelType& GetType() const{ return m_type; } /** * <p>Channel type, which determines the allowable resolution and bitrate. <i>If * you exceed the allowable input resolution or bitrate, the stream probably will * disconnect immediately.</i> Some types generate multiple qualities (renditions) * from the original input; this automatically gives viewers the best experience * for their devices and network conditions. Some types provide transcoded video; * transcoding allows higher playback quality across a range of download speeds. * Default: <code>STANDARD</code>. Valid values:</p> <ul> <li> <p> * <code>BASIC</code>: Video is transmuxed: Amazon IVS delivers the original input * quality to viewers. The viewer’s video-quality choice is limited to the original * input. Input resolution can be up to 1080p and bitrate can be up to 1.5 Mbps for * 480p and up to 3.5 Mbps for resolutions between 480p and 1080p. Original audio * is passed through.</p> </li> <li> <p> <code>STANDARD</code>: Video is * transcoded: multiple qualities are generated from the original input, to * automatically give viewers the best experience for their devices and network * conditions. Transcoding allows higher playback quality across a range of * download speeds. Resolution can be up to 1080p and bitrate can be up to 8.5 * Mbps. Audio is transcoded only for renditions 360p and below; above that, audio * is passed through. This is the default when you create a channel.</p> </li> <li> * <p> <code>ADVANCED_SD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at SD quality * (480p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * <li> <p> <code>ADVANCED_HD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at HD quality * (720p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * </ul> <p>Optional <i>transcode presets</i> (available for the * <code>ADVANCED</code> types) allow you to trade off available download bandwidth * and video quality, to optimize the viewing experience. There are two * presets:</p> <ul> <li> <p> <i>Constrained bandwidth delivery</i> uses a lower * bitrate for each quality level. Use it if you have low download bandwidth and/or * simple video content (e.g., talking heads)</p> </li> <li> <p> <i>Higher * bandwidth delivery</i> uses a higher bitrate for each quality level. Use it if * you have high download bandwidth and/or complex video content (e.g., flashes and * quick scene changes).</p> </li> </ul> */ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** * <p>Channel type, which determines the allowable resolution and bitrate. <i>If * you exceed the allowable input resolution or bitrate, the stream probably will * disconnect immediately.</i> Some types generate multiple qualities (renditions) * from the original input; this automatically gives viewers the best experience * for their devices and network conditions. Some types provide transcoded video; * transcoding allows higher playback quality across a range of download speeds. * Default: <code>STANDARD</code>. Valid values:</p> <ul> <li> <p> * <code>BASIC</code>: Video is transmuxed: Amazon IVS delivers the original input * quality to viewers. The viewer’s video-quality choice is limited to the original * input. Input resolution can be up to 1080p and bitrate can be up to 1.5 Mbps for * 480p and up to 3.5 Mbps for resolutions between 480p and 1080p. Original audio * is passed through.</p> </li> <li> <p> <code>STANDARD</code>: Video is * transcoded: multiple qualities are generated from the original input, to * automatically give viewers the best experience for their devices and network * conditions. Transcoding allows higher playback quality across a range of * download speeds. Resolution can be up to 1080p and bitrate can be up to 8.5 * Mbps. Audio is transcoded only for renditions 360p and below; above that, audio * is passed through. This is the default when you create a channel.</p> </li> <li> * <p> <code>ADVANCED_SD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at SD quality * (480p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * <li> <p> <code>ADVANCED_HD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at HD quality * (720p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * </ul> <p>Optional <i>transcode presets</i> (available for the * <code>ADVANCED</code> types) allow you to trade off available download bandwidth * and video quality, to optimize the viewing experience. There are two * presets:</p> <ul> <li> <p> <i>Constrained bandwidth delivery</i> uses a lower * bitrate for each quality level. Use it if you have low download bandwidth and/or * simple video content (e.g., talking heads)</p> </li> <li> <p> <i>Higher * bandwidth delivery</i> uses a higher bitrate for each quality level. Use it if * you have high download bandwidth and/or complex video content (e.g., flashes and * quick scene changes).</p> </li> </ul> */ inline void SetType(const ChannelType& value) { m_typeHasBeenSet = true; m_type = value; } /** * <p>Channel type, which determines the allowable resolution and bitrate. <i>If * you exceed the allowable input resolution or bitrate, the stream probably will * disconnect immediately.</i> Some types generate multiple qualities (renditions) * from the original input; this automatically gives viewers the best experience * for their devices and network conditions. Some types provide transcoded video; * transcoding allows higher playback quality across a range of download speeds. * Default: <code>STANDARD</code>. Valid values:</p> <ul> <li> <p> * <code>BASIC</code>: Video is transmuxed: Amazon IVS delivers the original input * quality to viewers. The viewer’s video-quality choice is limited to the original * input. Input resolution can be up to 1080p and bitrate can be up to 1.5 Mbps for * 480p and up to 3.5 Mbps for resolutions between 480p and 1080p. Original audio * is passed through.</p> </li> <li> <p> <code>STANDARD</code>: Video is * transcoded: multiple qualities are generated from the original input, to * automatically give viewers the best experience for their devices and network * conditions. Transcoding allows higher playback quality across a range of * download speeds. Resolution can be up to 1080p and bitrate can be up to 8.5 * Mbps. Audio is transcoded only for renditions 360p and below; above that, audio * is passed through. This is the default when you create a channel.</p> </li> <li> * <p> <code>ADVANCED_SD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at SD quality * (480p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * <li> <p> <code>ADVANCED_HD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at HD quality * (720p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * </ul> <p>Optional <i>transcode presets</i> (available for the * <code>ADVANCED</code> types) allow you to trade off available download bandwidth * and video quality, to optimize the viewing experience. There are two * presets:</p> <ul> <li> <p> <i>Constrained bandwidth delivery</i> uses a lower * bitrate for each quality level. Use it if you have low download bandwidth and/or * simple video content (e.g., talking heads)</p> </li> <li> <p> <i>Higher * bandwidth delivery</i> uses a higher bitrate for each quality level. Use it if * you have high download bandwidth and/or complex video content (e.g., flashes and * quick scene changes).</p> </li> </ul> */ inline void SetType(ChannelType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** * <p>Channel type, which determines the allowable resolution and bitrate. <i>If * you exceed the allowable input resolution or bitrate, the stream probably will * disconnect immediately.</i> Some types generate multiple qualities (renditions) * from the original input; this automatically gives viewers the best experience * for their devices and network conditions. Some types provide transcoded video; * transcoding allows higher playback quality across a range of download speeds. * Default: <code>STANDARD</code>. Valid values:</p> <ul> <li> <p> * <code>BASIC</code>: Video is transmuxed: Amazon IVS delivers the original input * quality to viewers. The viewer’s video-quality choice is limited to the original * input. Input resolution can be up to 1080p and bitrate can be up to 1.5 Mbps for * 480p and up to 3.5 Mbps for resolutions between 480p and 1080p. Original audio * is passed through.</p> </li> <li> <p> <code>STANDARD</code>: Video is * transcoded: multiple qualities are generated from the original input, to * automatically give viewers the best experience for their devices and network * conditions. Transcoding allows higher playback quality across a range of * download speeds. Resolution can be up to 1080p and bitrate can be up to 8.5 * Mbps. Audio is transcoded only for renditions 360p and below; above that, audio * is passed through. This is the default when you create a channel.</p> </li> <li> * <p> <code>ADVANCED_SD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at SD quality * (480p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * <li> <p> <code>ADVANCED_HD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at HD quality * (720p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * </ul> <p>Optional <i>transcode presets</i> (available for the * <code>ADVANCED</code> types) allow you to trade off available download bandwidth * and video quality, to optimize the viewing experience. There are two * presets:</p> <ul> <li> <p> <i>Constrained bandwidth delivery</i> uses a lower * bitrate for each quality level. Use it if you have low download bandwidth and/or * simple video content (e.g., talking heads)</p> </li> <li> <p> <i>Higher * bandwidth delivery</i> uses a higher bitrate for each quality level. Use it if * you have high download bandwidth and/or complex video content (e.g., flashes and * quick scene changes).</p> </li> </ul> */ inline UpdateChannelRequest& WithType(const ChannelType& value) { SetType(value); return *this;} /** * <p>Channel type, which determines the allowable resolution and bitrate. <i>If * you exceed the allowable input resolution or bitrate, the stream probably will * disconnect immediately.</i> Some types generate multiple qualities (renditions) * from the original input; this automatically gives viewers the best experience * for their devices and network conditions. Some types provide transcoded video; * transcoding allows higher playback quality across a range of download speeds. * Default: <code>STANDARD</code>. Valid values:</p> <ul> <li> <p> * <code>BASIC</code>: Video is transmuxed: Amazon IVS delivers the original input * quality to viewers. The viewer’s video-quality choice is limited to the original * input. Input resolution can be up to 1080p and bitrate can be up to 1.5 Mbps for * 480p and up to 3.5 Mbps for resolutions between 480p and 1080p. Original audio * is passed through.</p> </li> <li> <p> <code>STANDARD</code>: Video is * transcoded: multiple qualities are generated from the original input, to * automatically give viewers the best experience for their devices and network * conditions. Transcoding allows higher playback quality across a range of * download speeds. Resolution can be up to 1080p and bitrate can be up to 8.5 * Mbps. Audio is transcoded only for renditions 360p and below; above that, audio * is passed through. This is the default when you create a channel.</p> </li> <li> * <p> <code>ADVANCED_SD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at SD quality * (480p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * <li> <p> <code>ADVANCED_HD</code>: Video is transcoded; multiple qualities are * generated from the original input, to automatically give viewers the best * experience for their devices and network conditions. Input resolution can be up * to 1080p and bitrate can be up to 8.5 Mbps; output is capped at HD quality * (720p). You can select an optional transcode preset (see below). Audio for all * renditions is transcoded, and an audio-only rendition is available.</p> </li> * </ul> <p>Optional <i>transcode presets</i> (available for the * <code>ADVANCED</code> types) allow you to trade off available download bandwidth * and video quality, to optimize the viewing experience. There are two * presets:</p> <ul> <li> <p> <i>Constrained bandwidth delivery</i> uses a lower * bitrate for each quality level. Use it if you have low download bandwidth and/or * simple video content (e.g., talking heads)</p> </li> <li> <p> <i>Higher * bandwidth delivery</i> uses a higher bitrate for each quality level. Use it if * you have high download bandwidth and/or complex video content (e.g., flashes and * quick scene changes).</p> </li> </ul> */ inline UpdateChannelRequest& WithType(ChannelType&& value) { SetType(std::move(value)); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; bool m_authorized; bool m_authorizedHasBeenSet = false; bool m_insecureIngest; bool m_insecureIngestHasBeenSet = false; ChannelLatencyMode m_latencyMode; bool m_latencyModeHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; TranscodePreset m_preset; bool m_presetHasBeenSet = false; Aws::String m_recordingConfigurationArn; bool m_recordingConfigurationArnHasBeenSet = false; ChannelType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace IVS } // namespace Aws