1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/medialive/MediaLive_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <aws/core/utils/memory/stl/AWSVector.h> 10 #include <aws/medialive/model/MultiplexProgramChannelDestinationSettings.h> 11 #include <aws/medialive/model/MediaPackageOutputDestinationSettings.h> 12 #include <aws/medialive/model/OutputDestinationSettings.h> 13 #include <utility> 14 15 namespace Aws 16 { 17 namespace Utils 18 { 19 namespace Json 20 { 21 class JsonValue; 22 class JsonView; 23 } // namespace Json 24 } // namespace Utils 25 namespace MediaLive 26 { 27 namespace Model 28 { 29 30 /** 31 * Placeholder documentation for OutputDestination<p><h3>See Also:</h3> <a 32 * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/OutputDestination">AWS 33 * API Reference</a></p> 34 */ 35 class AWS_MEDIALIVE_API OutputDestination 36 { 37 public: 38 OutputDestination(); 39 OutputDestination(Aws::Utils::Json::JsonView jsonValue); 40 OutputDestination& operator=(Aws::Utils::Json::JsonView jsonValue); 41 Aws::Utils::Json::JsonValue Jsonize() const; 42 43 44 /** 45 * User-specified id. This is used in an output group or an output. 46 */ GetId()47 inline const Aws::String& GetId() const{ return m_id; } 48 49 /** 50 * User-specified id. This is used in an output group or an output. 51 */ IdHasBeenSet()52 inline bool IdHasBeenSet() const { return m_idHasBeenSet; } 53 54 /** 55 * User-specified id. This is used in an output group or an output. 56 */ SetId(const Aws::String & value)57 inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } 58 59 /** 60 * User-specified id. This is used in an output group or an output. 61 */ SetId(Aws::String && value)62 inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } 63 64 /** 65 * User-specified id. This is used in an output group or an output. 66 */ SetId(const char * value)67 inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } 68 69 /** 70 * User-specified id. This is used in an output group or an output. 71 */ WithId(const Aws::String & value)72 inline OutputDestination& WithId(const Aws::String& value) { SetId(value); return *this;} 73 74 /** 75 * User-specified id. This is used in an output group or an output. 76 */ WithId(Aws::String && value)77 inline OutputDestination& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} 78 79 /** 80 * User-specified id. This is used in an output group or an output. 81 */ WithId(const char * value)82 inline OutputDestination& WithId(const char* value) { SetId(value); return *this;} 83 84 85 /** 86 * Destination settings for a MediaPackage output; one destination for both 87 * encoders. 88 */ GetMediaPackageSettings()89 inline const Aws::Vector<MediaPackageOutputDestinationSettings>& GetMediaPackageSettings() const{ return m_mediaPackageSettings; } 90 91 /** 92 * Destination settings for a MediaPackage output; one destination for both 93 * encoders. 94 */ MediaPackageSettingsHasBeenSet()95 inline bool MediaPackageSettingsHasBeenSet() const { return m_mediaPackageSettingsHasBeenSet; } 96 97 /** 98 * Destination settings for a MediaPackage output; one destination for both 99 * encoders. 100 */ SetMediaPackageSettings(const Aws::Vector<MediaPackageOutputDestinationSettings> & value)101 inline void SetMediaPackageSettings(const Aws::Vector<MediaPackageOutputDestinationSettings>& value) { m_mediaPackageSettingsHasBeenSet = true; m_mediaPackageSettings = value; } 102 103 /** 104 * Destination settings for a MediaPackage output; one destination for both 105 * encoders. 106 */ SetMediaPackageSettings(Aws::Vector<MediaPackageOutputDestinationSettings> && value)107 inline void SetMediaPackageSettings(Aws::Vector<MediaPackageOutputDestinationSettings>&& value) { m_mediaPackageSettingsHasBeenSet = true; m_mediaPackageSettings = std::move(value); } 108 109 /** 110 * Destination settings for a MediaPackage output; one destination for both 111 * encoders. 112 */ WithMediaPackageSettings(const Aws::Vector<MediaPackageOutputDestinationSettings> & value)113 inline OutputDestination& WithMediaPackageSettings(const Aws::Vector<MediaPackageOutputDestinationSettings>& value) { SetMediaPackageSettings(value); return *this;} 114 115 /** 116 * Destination settings for a MediaPackage output; one destination for both 117 * encoders. 118 */ WithMediaPackageSettings(Aws::Vector<MediaPackageOutputDestinationSettings> && value)119 inline OutputDestination& WithMediaPackageSettings(Aws::Vector<MediaPackageOutputDestinationSettings>&& value) { SetMediaPackageSettings(std::move(value)); return *this;} 120 121 /** 122 * Destination settings for a MediaPackage output; one destination for both 123 * encoders. 124 */ AddMediaPackageSettings(const MediaPackageOutputDestinationSettings & value)125 inline OutputDestination& AddMediaPackageSettings(const MediaPackageOutputDestinationSettings& value) { m_mediaPackageSettingsHasBeenSet = true; m_mediaPackageSettings.push_back(value); return *this; } 126 127 /** 128 * Destination settings for a MediaPackage output; one destination for both 129 * encoders. 130 */ AddMediaPackageSettings(MediaPackageOutputDestinationSettings && value)131 inline OutputDestination& AddMediaPackageSettings(MediaPackageOutputDestinationSettings&& value) { m_mediaPackageSettingsHasBeenSet = true; m_mediaPackageSettings.push_back(std::move(value)); return *this; } 132 133 134 /** 135 * Destination settings for a Multiplex output; one destination for both encoders. 136 */ GetMultiplexSettings()137 inline const MultiplexProgramChannelDestinationSettings& GetMultiplexSettings() const{ return m_multiplexSettings; } 138 139 /** 140 * Destination settings for a Multiplex output; one destination for both encoders. 141 */ MultiplexSettingsHasBeenSet()142 inline bool MultiplexSettingsHasBeenSet() const { return m_multiplexSettingsHasBeenSet; } 143 144 /** 145 * Destination settings for a Multiplex output; one destination for both encoders. 146 */ SetMultiplexSettings(const MultiplexProgramChannelDestinationSettings & value)147 inline void SetMultiplexSettings(const MultiplexProgramChannelDestinationSettings& value) { m_multiplexSettingsHasBeenSet = true; m_multiplexSettings = value; } 148 149 /** 150 * Destination settings for a Multiplex output; one destination for both encoders. 151 */ SetMultiplexSettings(MultiplexProgramChannelDestinationSettings && value)152 inline void SetMultiplexSettings(MultiplexProgramChannelDestinationSettings&& value) { m_multiplexSettingsHasBeenSet = true; m_multiplexSettings = std::move(value); } 153 154 /** 155 * Destination settings for a Multiplex output; one destination for both encoders. 156 */ WithMultiplexSettings(const MultiplexProgramChannelDestinationSettings & value)157 inline OutputDestination& WithMultiplexSettings(const MultiplexProgramChannelDestinationSettings& value) { SetMultiplexSettings(value); return *this;} 158 159 /** 160 * Destination settings for a Multiplex output; one destination for both encoders. 161 */ WithMultiplexSettings(MultiplexProgramChannelDestinationSettings && value)162 inline OutputDestination& WithMultiplexSettings(MultiplexProgramChannelDestinationSettings&& value) { SetMultiplexSettings(std::move(value)); return *this;} 163 164 165 /** 166 * Destination settings for a standard output; one destination for each redundant 167 * encoder. 168 */ GetSettings()169 inline const Aws::Vector<OutputDestinationSettings>& GetSettings() const{ return m_settings; } 170 171 /** 172 * Destination settings for a standard output; one destination for each redundant 173 * encoder. 174 */ SettingsHasBeenSet()175 inline bool SettingsHasBeenSet() const { return m_settingsHasBeenSet; } 176 177 /** 178 * Destination settings for a standard output; one destination for each redundant 179 * encoder. 180 */ SetSettings(const Aws::Vector<OutputDestinationSettings> & value)181 inline void SetSettings(const Aws::Vector<OutputDestinationSettings>& value) { m_settingsHasBeenSet = true; m_settings = value; } 182 183 /** 184 * Destination settings for a standard output; one destination for each redundant 185 * encoder. 186 */ SetSettings(Aws::Vector<OutputDestinationSettings> && value)187 inline void SetSettings(Aws::Vector<OutputDestinationSettings>&& value) { m_settingsHasBeenSet = true; m_settings = std::move(value); } 188 189 /** 190 * Destination settings for a standard output; one destination for each redundant 191 * encoder. 192 */ WithSettings(const Aws::Vector<OutputDestinationSettings> & value)193 inline OutputDestination& WithSettings(const Aws::Vector<OutputDestinationSettings>& value) { SetSettings(value); return *this;} 194 195 /** 196 * Destination settings for a standard output; one destination for each redundant 197 * encoder. 198 */ WithSettings(Aws::Vector<OutputDestinationSettings> && value)199 inline OutputDestination& WithSettings(Aws::Vector<OutputDestinationSettings>&& value) { SetSettings(std::move(value)); return *this;} 200 201 /** 202 * Destination settings for a standard output; one destination for each redundant 203 * encoder. 204 */ AddSettings(const OutputDestinationSettings & value)205 inline OutputDestination& AddSettings(const OutputDestinationSettings& value) { m_settingsHasBeenSet = true; m_settings.push_back(value); return *this; } 206 207 /** 208 * Destination settings for a standard output; one destination for each redundant 209 * encoder. 210 */ AddSettings(OutputDestinationSettings && value)211 inline OutputDestination& AddSettings(OutputDestinationSettings&& value) { m_settingsHasBeenSet = true; m_settings.push_back(std::move(value)); return *this; } 212 213 private: 214 215 Aws::String m_id; 216 bool m_idHasBeenSet; 217 218 Aws::Vector<MediaPackageOutputDestinationSettings> m_mediaPackageSettings; 219 bool m_mediaPackageSettingsHasBeenSet; 220 221 MultiplexProgramChannelDestinationSettings m_multiplexSettings; 222 bool m_multiplexSettingsHasBeenSet; 223 224 Aws::Vector<OutputDestinationSettings> m_settings; 225 bool m_settingsHasBeenSet; 226 }; 227 228 } // namespace Model 229 } // namespace MediaLive 230 } // namespace Aws 231