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/mediaconvert/MediaConvert_EXPORTS.h> 8 #include <aws/mediaconvert/model/CmfcSettings.h> 9 #include <aws/mediaconvert/model/ContainerType.h> 10 #include <aws/mediaconvert/model/F4vSettings.h> 11 #include <aws/mediaconvert/model/M2tsSettings.h> 12 #include <aws/mediaconvert/model/M3u8Settings.h> 13 #include <aws/mediaconvert/model/MovSettings.h> 14 #include <aws/mediaconvert/model/Mp4Settings.h> 15 #include <aws/mediaconvert/model/MpdSettings.h> 16 #include <aws/mediaconvert/model/MxfSettings.h> 17 #include <utility> 18 19 namespace Aws 20 { 21 namespace Utils 22 { 23 namespace Json 24 { 25 class JsonValue; 26 class JsonView; 27 } // namespace Json 28 } // namespace Utils 29 namespace MediaConvert 30 { 31 namespace Model 32 { 33 34 /** 35 * Container specific settings.<p><h3>See Also:</h3> <a 36 * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ContainerSettings">AWS 37 * API Reference</a></p> 38 */ 39 class AWS_MEDIACONVERT_API ContainerSettings 40 { 41 public: 42 ContainerSettings(); 43 ContainerSettings(Aws::Utils::Json::JsonView jsonValue); 44 ContainerSettings& operator=(Aws::Utils::Json::JsonView jsonValue); 45 Aws::Utils::Json::JsonValue Jsonize() const; 46 47 48 /** 49 * These settings relate to the fragmented MP4 container for the segments in your 50 * CMAF outputs. 51 */ GetCmfcSettings()52 inline const CmfcSettings& GetCmfcSettings() const{ return m_cmfcSettings; } 53 54 /** 55 * These settings relate to the fragmented MP4 container for the segments in your 56 * CMAF outputs. 57 */ CmfcSettingsHasBeenSet()58 inline bool CmfcSettingsHasBeenSet() const { return m_cmfcSettingsHasBeenSet; } 59 60 /** 61 * These settings relate to the fragmented MP4 container for the segments in your 62 * CMAF outputs. 63 */ SetCmfcSettings(const CmfcSettings & value)64 inline void SetCmfcSettings(const CmfcSettings& value) { m_cmfcSettingsHasBeenSet = true; m_cmfcSettings = value; } 65 66 /** 67 * These settings relate to the fragmented MP4 container for the segments in your 68 * CMAF outputs. 69 */ SetCmfcSettings(CmfcSettings && value)70 inline void SetCmfcSettings(CmfcSettings&& value) { m_cmfcSettingsHasBeenSet = true; m_cmfcSettings = std::move(value); } 71 72 /** 73 * These settings relate to the fragmented MP4 container for the segments in your 74 * CMAF outputs. 75 */ WithCmfcSettings(const CmfcSettings & value)76 inline ContainerSettings& WithCmfcSettings(const CmfcSettings& value) { SetCmfcSettings(value); return *this;} 77 78 /** 79 * These settings relate to the fragmented MP4 container for the segments in your 80 * CMAF outputs. 81 */ WithCmfcSettings(CmfcSettings && value)82 inline ContainerSettings& WithCmfcSettings(CmfcSettings&& value) { SetCmfcSettings(std::move(value)); return *this;} 83 84 85 /** 86 * Container for this output. Some containers require a container settings object. 87 * If not specified, the default object will be created. 88 */ GetContainer()89 inline const ContainerType& GetContainer() const{ return m_container; } 90 91 /** 92 * Container for this output. Some containers require a container settings object. 93 * If not specified, the default object will be created. 94 */ ContainerHasBeenSet()95 inline bool ContainerHasBeenSet() const { return m_containerHasBeenSet; } 96 97 /** 98 * Container for this output. Some containers require a container settings object. 99 * If not specified, the default object will be created. 100 */ SetContainer(const ContainerType & value)101 inline void SetContainer(const ContainerType& value) { m_containerHasBeenSet = true; m_container = value; } 102 103 /** 104 * Container for this output. Some containers require a container settings object. 105 * If not specified, the default object will be created. 106 */ SetContainer(ContainerType && value)107 inline void SetContainer(ContainerType&& value) { m_containerHasBeenSet = true; m_container = std::move(value); } 108 109 /** 110 * Container for this output. Some containers require a container settings object. 111 * If not specified, the default object will be created. 112 */ WithContainer(const ContainerType & value)113 inline ContainerSettings& WithContainer(const ContainerType& value) { SetContainer(value); return *this;} 114 115 /** 116 * Container for this output. Some containers require a container settings object. 117 * If not specified, the default object will be created. 118 */ WithContainer(ContainerType && value)119 inline ContainerSettings& WithContainer(ContainerType&& value) { SetContainer(std::move(value)); return *this;} 120 121 122 /** 123 * Settings for F4v container 124 */ GetF4vSettings()125 inline const F4vSettings& GetF4vSettings() const{ return m_f4vSettings; } 126 127 /** 128 * Settings for F4v container 129 */ F4vSettingsHasBeenSet()130 inline bool F4vSettingsHasBeenSet() const { return m_f4vSettingsHasBeenSet; } 131 132 /** 133 * Settings for F4v container 134 */ SetF4vSettings(const F4vSettings & value)135 inline void SetF4vSettings(const F4vSettings& value) { m_f4vSettingsHasBeenSet = true; m_f4vSettings = value; } 136 137 /** 138 * Settings for F4v container 139 */ SetF4vSettings(F4vSettings && value)140 inline void SetF4vSettings(F4vSettings&& value) { m_f4vSettingsHasBeenSet = true; m_f4vSettings = std::move(value); } 141 142 /** 143 * Settings for F4v container 144 */ WithF4vSettings(const F4vSettings & value)145 inline ContainerSettings& WithF4vSettings(const F4vSettings& value) { SetF4vSettings(value); return *this;} 146 147 /** 148 * Settings for F4v container 149 */ WithF4vSettings(F4vSettings && value)150 inline ContainerSettings& WithF4vSettings(F4vSettings&& value) { SetF4vSettings(std::move(value)); return *this;} 151 152 153 /** 154 * MPEG-2 TS container settings. These apply to outputs in a File output group when 155 * the output's container (ContainerType) is MPEG-2 Transport Stream (M2TS). In 156 * these assets, data is organized by the program map table (PMT). Each transport 157 * stream program contains subsets of data, including audio, video, and metadata. 158 * Each of these subsets of data has a numerical label called a packet identifier 159 * (PID). Each transport stream program corresponds to one MediaConvert output. The 160 * PMT lists the types of data in a program along with their PID. Downstream 161 * systems and players use the program map table to look up the PID for each type 162 * of data it accesses and then uses the PIDs to locate specific data within the 163 * asset. 164 */ GetM2tsSettings()165 inline const M2tsSettings& GetM2tsSettings() const{ return m_m2tsSettings; } 166 167 /** 168 * MPEG-2 TS container settings. These apply to outputs in a File output group when 169 * the output's container (ContainerType) is MPEG-2 Transport Stream (M2TS). In 170 * these assets, data is organized by the program map table (PMT). Each transport 171 * stream program contains subsets of data, including audio, video, and metadata. 172 * Each of these subsets of data has a numerical label called a packet identifier 173 * (PID). Each transport stream program corresponds to one MediaConvert output. The 174 * PMT lists the types of data in a program along with their PID. Downstream 175 * systems and players use the program map table to look up the PID for each type 176 * of data it accesses and then uses the PIDs to locate specific data within the 177 * asset. 178 */ M2tsSettingsHasBeenSet()179 inline bool M2tsSettingsHasBeenSet() const { return m_m2tsSettingsHasBeenSet; } 180 181 /** 182 * MPEG-2 TS container settings. These apply to outputs in a File output group when 183 * the output's container (ContainerType) is MPEG-2 Transport Stream (M2TS). In 184 * these assets, data is organized by the program map table (PMT). Each transport 185 * stream program contains subsets of data, including audio, video, and metadata. 186 * Each of these subsets of data has a numerical label called a packet identifier 187 * (PID). Each transport stream program corresponds to one MediaConvert output. The 188 * PMT lists the types of data in a program along with their PID. Downstream 189 * systems and players use the program map table to look up the PID for each type 190 * of data it accesses and then uses the PIDs to locate specific data within the 191 * asset. 192 */ SetM2tsSettings(const M2tsSettings & value)193 inline void SetM2tsSettings(const M2tsSettings& value) { m_m2tsSettingsHasBeenSet = true; m_m2tsSettings = value; } 194 195 /** 196 * MPEG-2 TS container settings. These apply to outputs in a File output group when 197 * the output's container (ContainerType) is MPEG-2 Transport Stream (M2TS). In 198 * these assets, data is organized by the program map table (PMT). Each transport 199 * stream program contains subsets of data, including audio, video, and metadata. 200 * Each of these subsets of data has a numerical label called a packet identifier 201 * (PID). Each transport stream program corresponds to one MediaConvert output. The 202 * PMT lists the types of data in a program along with their PID. Downstream 203 * systems and players use the program map table to look up the PID for each type 204 * of data it accesses and then uses the PIDs to locate specific data within the 205 * asset. 206 */ SetM2tsSettings(M2tsSettings && value)207 inline void SetM2tsSettings(M2tsSettings&& value) { m_m2tsSettingsHasBeenSet = true; m_m2tsSettings = std::move(value); } 208 209 /** 210 * MPEG-2 TS container settings. These apply to outputs in a File output group when 211 * the output's container (ContainerType) is MPEG-2 Transport Stream (M2TS). In 212 * these assets, data is organized by the program map table (PMT). Each transport 213 * stream program contains subsets of data, including audio, video, and metadata. 214 * Each of these subsets of data has a numerical label called a packet identifier 215 * (PID). Each transport stream program corresponds to one MediaConvert output. The 216 * PMT lists the types of data in a program along with their PID. Downstream 217 * systems and players use the program map table to look up the PID for each type 218 * of data it accesses and then uses the PIDs to locate specific data within the 219 * asset. 220 */ WithM2tsSettings(const M2tsSettings & value)221 inline ContainerSettings& WithM2tsSettings(const M2tsSettings& value) { SetM2tsSettings(value); return *this;} 222 223 /** 224 * MPEG-2 TS container settings. These apply to outputs in a File output group when 225 * the output's container (ContainerType) is MPEG-2 Transport Stream (M2TS). In 226 * these assets, data is organized by the program map table (PMT). Each transport 227 * stream program contains subsets of data, including audio, video, and metadata. 228 * Each of these subsets of data has a numerical label called a packet identifier 229 * (PID). Each transport stream program corresponds to one MediaConvert output. The 230 * PMT lists the types of data in a program along with their PID. Downstream 231 * systems and players use the program map table to look up the PID for each type 232 * of data it accesses and then uses the PIDs to locate specific data within the 233 * asset. 234 */ WithM2tsSettings(M2tsSettings && value)235 inline ContainerSettings& WithM2tsSettings(M2tsSettings&& value) { SetM2tsSettings(std::move(value)); return *this;} 236 237 238 /** 239 * These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for 240 * the MPEG2-TS segments in your HLS outputs. 241 */ GetM3u8Settings()242 inline const M3u8Settings& GetM3u8Settings() const{ return m_m3u8Settings; } 243 244 /** 245 * These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for 246 * the MPEG2-TS segments in your HLS outputs. 247 */ M3u8SettingsHasBeenSet()248 inline bool M3u8SettingsHasBeenSet() const { return m_m3u8SettingsHasBeenSet; } 249 250 /** 251 * These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for 252 * the MPEG2-TS segments in your HLS outputs. 253 */ SetM3u8Settings(const M3u8Settings & value)254 inline void SetM3u8Settings(const M3u8Settings& value) { m_m3u8SettingsHasBeenSet = true; m_m3u8Settings = value; } 255 256 /** 257 * These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for 258 * the MPEG2-TS segments in your HLS outputs. 259 */ SetM3u8Settings(M3u8Settings && value)260 inline void SetM3u8Settings(M3u8Settings&& value) { m_m3u8SettingsHasBeenSet = true; m_m3u8Settings = std::move(value); } 261 262 /** 263 * These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for 264 * the MPEG2-TS segments in your HLS outputs. 265 */ WithM3u8Settings(const M3u8Settings & value)266 inline ContainerSettings& WithM3u8Settings(const M3u8Settings& value) { SetM3u8Settings(value); return *this;} 267 268 /** 269 * These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for 270 * the MPEG2-TS segments in your HLS outputs. 271 */ WithM3u8Settings(M3u8Settings && value)272 inline ContainerSettings& WithM3u8Settings(M3u8Settings&& value) { SetM3u8Settings(std::move(value)); return *this;} 273 274 275 /** 276 * These settings relate to your QuickTime MOV output container. 277 */ GetMovSettings()278 inline const MovSettings& GetMovSettings() const{ return m_movSettings; } 279 280 /** 281 * These settings relate to your QuickTime MOV output container. 282 */ MovSettingsHasBeenSet()283 inline bool MovSettingsHasBeenSet() const { return m_movSettingsHasBeenSet; } 284 285 /** 286 * These settings relate to your QuickTime MOV output container. 287 */ SetMovSettings(const MovSettings & value)288 inline void SetMovSettings(const MovSettings& value) { m_movSettingsHasBeenSet = true; m_movSettings = value; } 289 290 /** 291 * These settings relate to your QuickTime MOV output container. 292 */ SetMovSettings(MovSettings && value)293 inline void SetMovSettings(MovSettings&& value) { m_movSettingsHasBeenSet = true; m_movSettings = std::move(value); } 294 295 /** 296 * These settings relate to your QuickTime MOV output container. 297 */ WithMovSettings(const MovSettings & value)298 inline ContainerSettings& WithMovSettings(const MovSettings& value) { SetMovSettings(value); return *this;} 299 300 /** 301 * These settings relate to your QuickTime MOV output container. 302 */ WithMovSettings(MovSettings && value)303 inline ContainerSettings& WithMovSettings(MovSettings&& value) { SetMovSettings(std::move(value)); return *this;} 304 305 306 /** 307 * These settings relate to your MP4 output container. You can create audio only 308 * outputs with this container. For more information, see 309 * https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html#output-codecs-and-containers-supported-for-audio-only. 310 */ GetMp4Settings()311 inline const Mp4Settings& GetMp4Settings() const{ return m_mp4Settings; } 312 313 /** 314 * These settings relate to your MP4 output container. You can create audio only 315 * outputs with this container. For more information, see 316 * https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html#output-codecs-and-containers-supported-for-audio-only. 317 */ Mp4SettingsHasBeenSet()318 inline bool Mp4SettingsHasBeenSet() const { return m_mp4SettingsHasBeenSet; } 319 320 /** 321 * These settings relate to your MP4 output container. You can create audio only 322 * outputs with this container. For more information, see 323 * https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html#output-codecs-and-containers-supported-for-audio-only. 324 */ SetMp4Settings(const Mp4Settings & value)325 inline void SetMp4Settings(const Mp4Settings& value) { m_mp4SettingsHasBeenSet = true; m_mp4Settings = value; } 326 327 /** 328 * These settings relate to your MP4 output container. You can create audio only 329 * outputs with this container. For more information, see 330 * https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html#output-codecs-and-containers-supported-for-audio-only. 331 */ SetMp4Settings(Mp4Settings && value)332 inline void SetMp4Settings(Mp4Settings&& value) { m_mp4SettingsHasBeenSet = true; m_mp4Settings = std::move(value); } 333 334 /** 335 * These settings relate to your MP4 output container. You can create audio only 336 * outputs with this container. For more information, see 337 * https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html#output-codecs-and-containers-supported-for-audio-only. 338 */ WithMp4Settings(const Mp4Settings & value)339 inline ContainerSettings& WithMp4Settings(const Mp4Settings& value) { SetMp4Settings(value); return *this;} 340 341 /** 342 * These settings relate to your MP4 output container. You can create audio only 343 * outputs with this container. For more information, see 344 * https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html#output-codecs-and-containers-supported-for-audio-only. 345 */ WithMp4Settings(Mp4Settings && value)346 inline ContainerSettings& WithMp4Settings(Mp4Settings&& value) { SetMp4Settings(std::move(value)); return *this;} 347 348 349 /** 350 * These settings relate to the fragmented MP4 container for the segments in your 351 * DASH outputs. 352 */ GetMpdSettings()353 inline const MpdSettings& GetMpdSettings() const{ return m_mpdSettings; } 354 355 /** 356 * These settings relate to the fragmented MP4 container for the segments in your 357 * DASH outputs. 358 */ MpdSettingsHasBeenSet()359 inline bool MpdSettingsHasBeenSet() const { return m_mpdSettingsHasBeenSet; } 360 361 /** 362 * These settings relate to the fragmented MP4 container for the segments in your 363 * DASH outputs. 364 */ SetMpdSettings(const MpdSettings & value)365 inline void SetMpdSettings(const MpdSettings& value) { m_mpdSettingsHasBeenSet = true; m_mpdSettings = value; } 366 367 /** 368 * These settings relate to the fragmented MP4 container for the segments in your 369 * DASH outputs. 370 */ SetMpdSettings(MpdSettings && value)371 inline void SetMpdSettings(MpdSettings&& value) { m_mpdSettingsHasBeenSet = true; m_mpdSettings = std::move(value); } 372 373 /** 374 * These settings relate to the fragmented MP4 container for the segments in your 375 * DASH outputs. 376 */ WithMpdSettings(const MpdSettings & value)377 inline ContainerSettings& WithMpdSettings(const MpdSettings& value) { SetMpdSettings(value); return *this;} 378 379 /** 380 * These settings relate to the fragmented MP4 container for the segments in your 381 * DASH outputs. 382 */ WithMpdSettings(MpdSettings && value)383 inline ContainerSettings& WithMpdSettings(MpdSettings&& value) { SetMpdSettings(std::move(value)); return *this;} 384 385 386 /** 387 * These settings relate to your MXF output container. 388 */ GetMxfSettings()389 inline const MxfSettings& GetMxfSettings() const{ return m_mxfSettings; } 390 391 /** 392 * These settings relate to your MXF output container. 393 */ MxfSettingsHasBeenSet()394 inline bool MxfSettingsHasBeenSet() const { return m_mxfSettingsHasBeenSet; } 395 396 /** 397 * These settings relate to your MXF output container. 398 */ SetMxfSettings(const MxfSettings & value)399 inline void SetMxfSettings(const MxfSettings& value) { m_mxfSettingsHasBeenSet = true; m_mxfSettings = value; } 400 401 /** 402 * These settings relate to your MXF output container. 403 */ SetMxfSettings(MxfSettings && value)404 inline void SetMxfSettings(MxfSettings&& value) { m_mxfSettingsHasBeenSet = true; m_mxfSettings = std::move(value); } 405 406 /** 407 * These settings relate to your MXF output container. 408 */ WithMxfSettings(const MxfSettings & value)409 inline ContainerSettings& WithMxfSettings(const MxfSettings& value) { SetMxfSettings(value); return *this;} 410 411 /** 412 * These settings relate to your MXF output container. 413 */ WithMxfSettings(MxfSettings && value)414 inline ContainerSettings& WithMxfSettings(MxfSettings&& value) { SetMxfSettings(std::move(value)); return *this;} 415 416 private: 417 418 CmfcSettings m_cmfcSettings; 419 bool m_cmfcSettingsHasBeenSet; 420 421 ContainerType m_container; 422 bool m_containerHasBeenSet; 423 424 F4vSettings m_f4vSettings; 425 bool m_f4vSettingsHasBeenSet; 426 427 M2tsSettings m_m2tsSettings; 428 bool m_m2tsSettingsHasBeenSet; 429 430 M3u8Settings m_m3u8Settings; 431 bool m_m3u8SettingsHasBeenSet; 432 433 MovSettings m_movSettings; 434 bool m_movSettingsHasBeenSet; 435 436 Mp4Settings m_mp4Settings; 437 bool m_mp4SettingsHasBeenSet; 438 439 MpdSettings m_mpdSettings; 440 bool m_mpdSettingsHasBeenSet; 441 442 MxfSettings m_mxfSettings; 443 bool m_mxfSettingsHasBeenSet; 444 }; 445 446 } // namespace Model 447 } // namespace MediaConvert 448 } // namespace Aws 449