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/AWSVector.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <utility> 11 12 namespace Aws 13 { 14 namespace Utils 15 { 16 namespace Json 17 { 18 class JsonValue; 19 class JsonView; 20 } // namespace Json 21 } // namespace Utils 22 namespace MediaLive 23 { 24 namespace Model 25 { 26 27 /** 28 * The properties for a private VPC Output 29 When this property is specified, the 30 * output egress addresses will be created in a user specified VPC 31 <p><h3>See 32 * Also:</h3> <a 33 * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/VpcOutputSettings">AWS 34 * API Reference</a></p> 35 */ 36 class AWS_MEDIALIVE_API VpcOutputSettings 37 { 38 public: 39 VpcOutputSettings(); 40 VpcOutputSettings(Aws::Utils::Json::JsonView jsonValue); 41 VpcOutputSettings& operator=(Aws::Utils::Json::JsonView jsonValue); 42 Aws::Utils::Json::JsonValue Jsonize() const; 43 44 45 /** 46 * List of public address allocation ids to associate with ENIs that will be 47 * created in Output VPC. 48 Must specify one for SINGLE_PIPELINE, two for STANDARD 49 * channels 50 51 */ GetPublicAddressAllocationIds()52 inline const Aws::Vector<Aws::String>& GetPublicAddressAllocationIds() const{ return m_publicAddressAllocationIds; } 53 54 /** 55 * List of public address allocation ids to associate with ENIs that will be 56 * created in Output VPC. 57 Must specify one for SINGLE_PIPELINE, two for STANDARD 58 * channels 59 60 */ PublicAddressAllocationIdsHasBeenSet()61 inline bool PublicAddressAllocationIdsHasBeenSet() const { return m_publicAddressAllocationIdsHasBeenSet; } 62 63 /** 64 * List of public address allocation ids to associate with ENIs that will be 65 * created in Output VPC. 66 Must specify one for SINGLE_PIPELINE, two for STANDARD 67 * channels 68 69 */ SetPublicAddressAllocationIds(const Aws::Vector<Aws::String> & value)70 inline void SetPublicAddressAllocationIds(const Aws::Vector<Aws::String>& value) { m_publicAddressAllocationIdsHasBeenSet = true; m_publicAddressAllocationIds = value; } 71 72 /** 73 * List of public address allocation ids to associate with ENIs that will be 74 * created in Output VPC. 75 Must specify one for SINGLE_PIPELINE, two for STANDARD 76 * channels 77 78 */ SetPublicAddressAllocationIds(Aws::Vector<Aws::String> && value)79 inline void SetPublicAddressAllocationIds(Aws::Vector<Aws::String>&& value) { m_publicAddressAllocationIdsHasBeenSet = true; m_publicAddressAllocationIds = std::move(value); } 80 81 /** 82 * List of public address allocation ids to associate with ENIs that will be 83 * created in Output VPC. 84 Must specify one for SINGLE_PIPELINE, two for STANDARD 85 * channels 86 87 */ WithPublicAddressAllocationIds(const Aws::Vector<Aws::String> & value)88 inline VpcOutputSettings& WithPublicAddressAllocationIds(const Aws::Vector<Aws::String>& value) { SetPublicAddressAllocationIds(value); return *this;} 89 90 /** 91 * List of public address allocation ids to associate with ENIs that will be 92 * created in Output VPC. 93 Must specify one for SINGLE_PIPELINE, two for STANDARD 94 * channels 95 96 */ WithPublicAddressAllocationIds(Aws::Vector<Aws::String> && value)97 inline VpcOutputSettings& WithPublicAddressAllocationIds(Aws::Vector<Aws::String>&& value) { SetPublicAddressAllocationIds(std::move(value)); return *this;} 98 99 /** 100 * List of public address allocation ids to associate with ENIs that will be 101 * created in Output VPC. 102 Must specify one for SINGLE_PIPELINE, two for STANDARD 103 * channels 104 105 */ AddPublicAddressAllocationIds(const Aws::String & value)106 inline VpcOutputSettings& AddPublicAddressAllocationIds(const Aws::String& value) { m_publicAddressAllocationIdsHasBeenSet = true; m_publicAddressAllocationIds.push_back(value); return *this; } 107 108 /** 109 * List of public address allocation ids to associate with ENIs that will be 110 * created in Output VPC. 111 Must specify one for SINGLE_PIPELINE, two for STANDARD 112 * channels 113 114 */ AddPublicAddressAllocationIds(Aws::String && value)115 inline VpcOutputSettings& AddPublicAddressAllocationIds(Aws::String&& value) { m_publicAddressAllocationIdsHasBeenSet = true; m_publicAddressAllocationIds.push_back(std::move(value)); return *this; } 116 117 /** 118 * List of public address allocation ids to associate with ENIs that will be 119 * created in Output VPC. 120 Must specify one for SINGLE_PIPELINE, two for STANDARD 121 * channels 122 123 */ AddPublicAddressAllocationIds(const char * value)124 inline VpcOutputSettings& AddPublicAddressAllocationIds(const char* value) { m_publicAddressAllocationIdsHasBeenSet = true; m_publicAddressAllocationIds.push_back(value); return *this; } 125 126 127 /** 128 * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network 129 * interfaces. 130 If none are specified then the VPC default security group will be 131 * used 132 133 */ GetSecurityGroupIds()134 inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const{ return m_securityGroupIds; } 135 136 /** 137 * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network 138 * interfaces. 139 If none are specified then the VPC default security group will be 140 * used 141 142 */ SecurityGroupIdsHasBeenSet()143 inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; } 144 145 /** 146 * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network 147 * interfaces. 148 If none are specified then the VPC default security group will be 149 * used 150 151 */ SetSecurityGroupIds(const Aws::Vector<Aws::String> & value)152 inline void SetSecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; } 153 154 /** 155 * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network 156 * interfaces. 157 If none are specified then the VPC default security group will be 158 * used 159 160 */ SetSecurityGroupIds(Aws::Vector<Aws::String> && value)161 inline void SetSecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); } 162 163 /** 164 * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network 165 * interfaces. 166 If none are specified then the VPC default security group will be 167 * used 168 169 */ WithSecurityGroupIds(const Aws::Vector<Aws::String> & value)170 inline VpcOutputSettings& WithSecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetSecurityGroupIds(value); return *this;} 171 172 /** 173 * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network 174 * interfaces. 175 If none are specified then the VPC default security group will be 176 * used 177 178 */ WithSecurityGroupIds(Aws::Vector<Aws::String> && value)179 inline VpcOutputSettings& WithSecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetSecurityGroupIds(std::move(value)); return *this;} 180 181 /** 182 * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network 183 * interfaces. 184 If none are specified then the VPC default security group will be 185 * used 186 187 */ AddSecurityGroupIds(const Aws::String & value)188 inline VpcOutputSettings& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } 189 190 /** 191 * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network 192 * interfaces. 193 If none are specified then the VPC default security group will be 194 * used 195 196 */ AddSecurityGroupIds(Aws::String && value)197 inline VpcOutputSettings& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; } 198 199 /** 200 * A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network 201 * interfaces. 202 If none are specified then the VPC default security group will be 203 * used 204 205 */ AddSecurityGroupIds(const char * value)206 inline VpcOutputSettings& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } 207 208 209 /** 210 * A list of VPC subnet IDs from the same VPC. 211 If STANDARD channel, subnet IDs must 212 * be mapped to two unique availability zones (AZ). 213 214 */ GetSubnetIds()215 inline const Aws::Vector<Aws::String>& GetSubnetIds() const{ return m_subnetIds; } 216 217 /** 218 * A list of VPC subnet IDs from the same VPC. 219 If STANDARD channel, subnet IDs must 220 * be mapped to two unique availability zones (AZ). 221 222 */ SubnetIdsHasBeenSet()223 inline bool SubnetIdsHasBeenSet() const { return m_subnetIdsHasBeenSet; } 224 225 /** 226 * A list of VPC subnet IDs from the same VPC. 227 If STANDARD channel, subnet IDs must 228 * be mapped to two unique availability zones (AZ). 229 230 */ SetSubnetIds(const Aws::Vector<Aws::String> & value)231 inline void SetSubnetIds(const Aws::Vector<Aws::String>& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = value; } 232 233 /** 234 * A list of VPC subnet IDs from the same VPC. 235 If STANDARD channel, subnet IDs must 236 * be mapped to two unique availability zones (AZ). 237 238 */ SetSubnetIds(Aws::Vector<Aws::String> && value)239 inline void SetSubnetIds(Aws::Vector<Aws::String>&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = std::move(value); } 240 241 /** 242 * A list of VPC subnet IDs from the same VPC. 243 If STANDARD channel, subnet IDs must 244 * be mapped to two unique availability zones (AZ). 245 246 */ WithSubnetIds(const Aws::Vector<Aws::String> & value)247 inline VpcOutputSettings& WithSubnetIds(const Aws::Vector<Aws::String>& value) { SetSubnetIds(value); return *this;} 248 249 /** 250 * A list of VPC subnet IDs from the same VPC. 251 If STANDARD channel, subnet IDs must 252 * be mapped to two unique availability zones (AZ). 253 254 */ WithSubnetIds(Aws::Vector<Aws::String> && value)255 inline VpcOutputSettings& WithSubnetIds(Aws::Vector<Aws::String>&& value) { SetSubnetIds(std::move(value)); return *this;} 256 257 /** 258 * A list of VPC subnet IDs from the same VPC. 259 If STANDARD channel, subnet IDs must 260 * be mapped to two unique availability zones (AZ). 261 262 */ AddSubnetIds(const Aws::String & value)263 inline VpcOutputSettings& AddSubnetIds(const Aws::String& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } 264 265 /** 266 * A list of VPC subnet IDs from the same VPC. 267 If STANDARD channel, subnet IDs must 268 * be mapped to two unique availability zones (AZ). 269 270 */ AddSubnetIds(Aws::String && value)271 inline VpcOutputSettings& AddSubnetIds(Aws::String&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(std::move(value)); return *this; } 272 273 /** 274 * A list of VPC subnet IDs from the same VPC. 275 If STANDARD channel, subnet IDs must 276 * be mapped to two unique availability zones (AZ). 277 278 */ AddSubnetIds(const char * value)279 inline VpcOutputSettings& AddSubnetIds(const char* value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } 280 281 private: 282 283 Aws::Vector<Aws::String> m_publicAddressAllocationIds; 284 bool m_publicAddressAllocationIdsHasBeenSet; 285 286 Aws::Vector<Aws::String> m_securityGroupIds; 287 bool m_securityGroupIdsHasBeenSet; 288 289 Aws::Vector<Aws::String> m_subnetIds; 290 bool m_subnetIdsHasBeenSet; 291 }; 292 293 } // namespace Model 294 } // namespace MediaLive 295 } // namespace Aws 296