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/medialive/model/OutputGroupSettings.h> 10 #include <aws/core/utils/memory/stl/AWSVector.h> 11 #include <aws/medialive/model/Output.h> 12 #include <utility> 13 14 namespace Aws 15 { 16 namespace Utils 17 { 18 namespace Json 19 { 20 class JsonValue; 21 class JsonView; 22 } // namespace Json 23 } // namespace Utils 24 namespace MediaLive 25 { 26 namespace Model 27 { 28 29 /** 30 * Output groups for this Live Event. Output groups contain information about where 31 * streams should be distributed.<p><h3>See Also:</h3> <a 32 * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/OutputGroup">AWS 33 * API Reference</a></p> 34 */ 35 class AWS_MEDIALIVE_API OutputGroup 36 { 37 public: 38 OutputGroup(); 39 OutputGroup(Aws::Utils::Json::JsonView jsonValue); 40 OutputGroup& operator=(Aws::Utils::Json::JsonView jsonValue); 41 Aws::Utils::Json::JsonValue Jsonize() const; 42 43 44 /** 45 * Custom output group name optionally defined by the user. Only letters, numbers, 46 * and the underscore character allowed; only 32 characters allowed. 47 */ GetName()48 inline const Aws::String& GetName() const{ return m_name; } 49 50 /** 51 * Custom output group name optionally defined by the user. Only letters, numbers, 52 * and the underscore character allowed; only 32 characters allowed. 53 */ NameHasBeenSet()54 inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } 55 56 /** 57 * Custom output group name optionally defined by the user. Only letters, numbers, 58 * and the underscore character allowed; only 32 characters allowed. 59 */ SetName(const Aws::String & value)60 inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } 61 62 /** 63 * Custom output group name optionally defined by the user. Only letters, numbers, 64 * and the underscore character allowed; only 32 characters allowed. 65 */ SetName(Aws::String && value)66 inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } 67 68 /** 69 * Custom output group name optionally defined by the user. Only letters, numbers, 70 * and the underscore character allowed; only 32 characters allowed. 71 */ SetName(const char * value)72 inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } 73 74 /** 75 * Custom output group name optionally defined by the user. Only letters, numbers, 76 * and the underscore character allowed; only 32 characters allowed. 77 */ WithName(const Aws::String & value)78 inline OutputGroup& WithName(const Aws::String& value) { SetName(value); return *this;} 79 80 /** 81 * Custom output group name optionally defined by the user. Only letters, numbers, 82 * and the underscore character allowed; only 32 characters allowed. 83 */ WithName(Aws::String && value)84 inline OutputGroup& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} 85 86 /** 87 * Custom output group name optionally defined by the user. Only letters, numbers, 88 * and the underscore character allowed; only 32 characters allowed. 89 */ WithName(const char * value)90 inline OutputGroup& WithName(const char* value) { SetName(value); return *this;} 91 92 93 /** 94 * Settings associated with the output group. 95 */ GetOutputGroupSettings()96 inline const OutputGroupSettings& GetOutputGroupSettings() const{ return m_outputGroupSettings; } 97 98 /** 99 * Settings associated with the output group. 100 */ OutputGroupSettingsHasBeenSet()101 inline bool OutputGroupSettingsHasBeenSet() const { return m_outputGroupSettingsHasBeenSet; } 102 103 /** 104 * Settings associated with the output group. 105 */ SetOutputGroupSettings(const OutputGroupSettings & value)106 inline void SetOutputGroupSettings(const OutputGroupSettings& value) { m_outputGroupSettingsHasBeenSet = true; m_outputGroupSettings = value; } 107 108 /** 109 * Settings associated with the output group. 110 */ SetOutputGroupSettings(OutputGroupSettings && value)111 inline void SetOutputGroupSettings(OutputGroupSettings&& value) { m_outputGroupSettingsHasBeenSet = true; m_outputGroupSettings = std::move(value); } 112 113 /** 114 * Settings associated with the output group. 115 */ WithOutputGroupSettings(const OutputGroupSettings & value)116 inline OutputGroup& WithOutputGroupSettings(const OutputGroupSettings& value) { SetOutputGroupSettings(value); return *this;} 117 118 /** 119 * Settings associated with the output group. 120 */ WithOutputGroupSettings(OutputGroupSettings && value)121 inline OutputGroup& WithOutputGroupSettings(OutputGroupSettings&& value) { SetOutputGroupSettings(std::move(value)); return *this;} 122 123 124 GetOutputs()125 inline const Aws::Vector<Output>& GetOutputs() const{ return m_outputs; } 126 127 OutputsHasBeenSet()128 inline bool OutputsHasBeenSet() const { return m_outputsHasBeenSet; } 129 130 SetOutputs(const Aws::Vector<Output> & value)131 inline void SetOutputs(const Aws::Vector<Output>& value) { m_outputsHasBeenSet = true; m_outputs = value; } 132 133 SetOutputs(Aws::Vector<Output> && value)134 inline void SetOutputs(Aws::Vector<Output>&& value) { m_outputsHasBeenSet = true; m_outputs = std::move(value); } 135 136 WithOutputs(const Aws::Vector<Output> & value)137 inline OutputGroup& WithOutputs(const Aws::Vector<Output>& value) { SetOutputs(value); return *this;} 138 139 WithOutputs(Aws::Vector<Output> && value)140 inline OutputGroup& WithOutputs(Aws::Vector<Output>&& value) { SetOutputs(std::move(value)); return *this;} 141 142 AddOutputs(const Output & value)143 inline OutputGroup& AddOutputs(const Output& value) { m_outputsHasBeenSet = true; m_outputs.push_back(value); return *this; } 144 145 AddOutputs(Output && value)146 inline OutputGroup& AddOutputs(Output&& value) { m_outputsHasBeenSet = true; m_outputs.push_back(std::move(value)); return *this; } 147 148 private: 149 150 Aws::String m_name; 151 bool m_nameHasBeenSet; 152 153 OutputGroupSettings m_outputGroupSettings; 154 bool m_outputGroupSettingsHasBeenSet; 155 156 Aws::Vector<Output> m_outputs; 157 bool m_outputsHasBeenSet; 158 }; 159 160 } // namespace Model 161 } // namespace MediaLive 162 } // namespace Aws 163