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/ec2/EC2_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <aws/core/utils/memory/stl/AWSVector.h> 11 #include <aws/ec2/model/Tag.h> 12 #include <utility> 13 14 namespace Aws 15 { 16 namespace Utils 17 { 18 namespace Xml 19 { 20 class XmlNode; 21 } // namespace Xml 22 } // namespace Utils 23 namespace EC2 24 { 25 namespace Model 26 { 27 28 /** 29 * <p>Describes a customer gateway.</p><p><h3>See Also:</h3> <a 30 * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CustomerGateway">AWS 31 * API Reference</a></p> 32 */ 33 class AWS_EC2_API CustomerGateway 34 { 35 public: 36 CustomerGateway(); 37 CustomerGateway(const Aws::Utils::Xml::XmlNode& xmlNode); 38 CustomerGateway& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); 39 40 void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; 41 void OutputToStream(Aws::OStream& oStream, const char* location) const; 42 43 44 /** 45 * <p>The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number 46 * (ASN).</p> 47 */ GetBgpAsn()48 inline const Aws::String& GetBgpAsn() const{ return m_bgpAsn; } 49 50 /** 51 * <p>The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number 52 * (ASN).</p> 53 */ BgpAsnHasBeenSet()54 inline bool BgpAsnHasBeenSet() const { return m_bgpAsnHasBeenSet; } 55 56 /** 57 * <p>The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number 58 * (ASN).</p> 59 */ SetBgpAsn(const Aws::String & value)60 inline void SetBgpAsn(const Aws::String& value) { m_bgpAsnHasBeenSet = true; m_bgpAsn = value; } 61 62 /** 63 * <p>The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number 64 * (ASN).</p> 65 */ SetBgpAsn(Aws::String && value)66 inline void SetBgpAsn(Aws::String&& value) { m_bgpAsnHasBeenSet = true; m_bgpAsn = std::move(value); } 67 68 /** 69 * <p>The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number 70 * (ASN).</p> 71 */ SetBgpAsn(const char * value)72 inline void SetBgpAsn(const char* value) { m_bgpAsnHasBeenSet = true; m_bgpAsn.assign(value); } 73 74 /** 75 * <p>The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number 76 * (ASN).</p> 77 */ WithBgpAsn(const Aws::String & value)78 inline CustomerGateway& WithBgpAsn(const Aws::String& value) { SetBgpAsn(value); return *this;} 79 80 /** 81 * <p>The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number 82 * (ASN).</p> 83 */ WithBgpAsn(Aws::String && value)84 inline CustomerGateway& WithBgpAsn(Aws::String&& value) { SetBgpAsn(std::move(value)); return *this;} 85 86 /** 87 * <p>The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number 88 * (ASN).</p> 89 */ WithBgpAsn(const char * value)90 inline CustomerGateway& WithBgpAsn(const char* value) { SetBgpAsn(value); return *this;} 91 92 93 /** 94 * <p>The ID of the customer gateway.</p> 95 */ GetCustomerGatewayId()96 inline const Aws::String& GetCustomerGatewayId() const{ return m_customerGatewayId; } 97 98 /** 99 * <p>The ID of the customer gateway.</p> 100 */ CustomerGatewayIdHasBeenSet()101 inline bool CustomerGatewayIdHasBeenSet() const { return m_customerGatewayIdHasBeenSet; } 102 103 /** 104 * <p>The ID of the customer gateway.</p> 105 */ SetCustomerGatewayId(const Aws::String & value)106 inline void SetCustomerGatewayId(const Aws::String& value) { m_customerGatewayIdHasBeenSet = true; m_customerGatewayId = value; } 107 108 /** 109 * <p>The ID of the customer gateway.</p> 110 */ SetCustomerGatewayId(Aws::String && value)111 inline void SetCustomerGatewayId(Aws::String&& value) { m_customerGatewayIdHasBeenSet = true; m_customerGatewayId = std::move(value); } 112 113 /** 114 * <p>The ID of the customer gateway.</p> 115 */ SetCustomerGatewayId(const char * value)116 inline void SetCustomerGatewayId(const char* value) { m_customerGatewayIdHasBeenSet = true; m_customerGatewayId.assign(value); } 117 118 /** 119 * <p>The ID of the customer gateway.</p> 120 */ WithCustomerGatewayId(const Aws::String & value)121 inline CustomerGateway& WithCustomerGatewayId(const Aws::String& value) { SetCustomerGatewayId(value); return *this;} 122 123 /** 124 * <p>The ID of the customer gateway.</p> 125 */ WithCustomerGatewayId(Aws::String && value)126 inline CustomerGateway& WithCustomerGatewayId(Aws::String&& value) { SetCustomerGatewayId(std::move(value)); return *this;} 127 128 /** 129 * <p>The ID of the customer gateway.</p> 130 */ WithCustomerGatewayId(const char * value)131 inline CustomerGateway& WithCustomerGatewayId(const char* value) { SetCustomerGatewayId(value); return *this;} 132 133 134 /** 135 * <p>The Internet-routable IP address of the customer gateway's outside 136 * interface.</p> 137 */ GetIpAddress()138 inline const Aws::String& GetIpAddress() const{ return m_ipAddress; } 139 140 /** 141 * <p>The Internet-routable IP address of the customer gateway's outside 142 * interface.</p> 143 */ IpAddressHasBeenSet()144 inline bool IpAddressHasBeenSet() const { return m_ipAddressHasBeenSet; } 145 146 /** 147 * <p>The Internet-routable IP address of the customer gateway's outside 148 * interface.</p> 149 */ SetIpAddress(const Aws::String & value)150 inline void SetIpAddress(const Aws::String& value) { m_ipAddressHasBeenSet = true; m_ipAddress = value; } 151 152 /** 153 * <p>The Internet-routable IP address of the customer gateway's outside 154 * interface.</p> 155 */ SetIpAddress(Aws::String && value)156 inline void SetIpAddress(Aws::String&& value) { m_ipAddressHasBeenSet = true; m_ipAddress = std::move(value); } 157 158 /** 159 * <p>The Internet-routable IP address of the customer gateway's outside 160 * interface.</p> 161 */ SetIpAddress(const char * value)162 inline void SetIpAddress(const char* value) { m_ipAddressHasBeenSet = true; m_ipAddress.assign(value); } 163 164 /** 165 * <p>The Internet-routable IP address of the customer gateway's outside 166 * interface.</p> 167 */ WithIpAddress(const Aws::String & value)168 inline CustomerGateway& WithIpAddress(const Aws::String& value) { SetIpAddress(value); return *this;} 169 170 /** 171 * <p>The Internet-routable IP address of the customer gateway's outside 172 * interface.</p> 173 */ WithIpAddress(Aws::String && value)174 inline CustomerGateway& WithIpAddress(Aws::String&& value) { SetIpAddress(std::move(value)); return *this;} 175 176 /** 177 * <p>The Internet-routable IP address of the customer gateway's outside 178 * interface.</p> 179 */ WithIpAddress(const char * value)180 inline CustomerGateway& WithIpAddress(const char* value) { SetIpAddress(value); return *this;} 181 182 183 /** 184 * <p>The Amazon Resource Name (ARN) for the customer gateway certificate.</p> 185 */ GetCertificateArn()186 inline const Aws::String& GetCertificateArn() const{ return m_certificateArn; } 187 188 /** 189 * <p>The Amazon Resource Name (ARN) for the customer gateway certificate.</p> 190 */ CertificateArnHasBeenSet()191 inline bool CertificateArnHasBeenSet() const { return m_certificateArnHasBeenSet; } 192 193 /** 194 * <p>The Amazon Resource Name (ARN) for the customer gateway certificate.</p> 195 */ SetCertificateArn(const Aws::String & value)196 inline void SetCertificateArn(const Aws::String& value) { m_certificateArnHasBeenSet = true; m_certificateArn = value; } 197 198 /** 199 * <p>The Amazon Resource Name (ARN) for the customer gateway certificate.</p> 200 */ SetCertificateArn(Aws::String && value)201 inline void SetCertificateArn(Aws::String&& value) { m_certificateArnHasBeenSet = true; m_certificateArn = std::move(value); } 202 203 /** 204 * <p>The Amazon Resource Name (ARN) for the customer gateway certificate.</p> 205 */ SetCertificateArn(const char * value)206 inline void SetCertificateArn(const char* value) { m_certificateArnHasBeenSet = true; m_certificateArn.assign(value); } 207 208 /** 209 * <p>The Amazon Resource Name (ARN) for the customer gateway certificate.</p> 210 */ WithCertificateArn(const Aws::String & value)211 inline CustomerGateway& WithCertificateArn(const Aws::String& value) { SetCertificateArn(value); return *this;} 212 213 /** 214 * <p>The Amazon Resource Name (ARN) for the customer gateway certificate.</p> 215 */ WithCertificateArn(Aws::String && value)216 inline CustomerGateway& WithCertificateArn(Aws::String&& value) { SetCertificateArn(std::move(value)); return *this;} 217 218 /** 219 * <p>The Amazon Resource Name (ARN) for the customer gateway certificate.</p> 220 */ WithCertificateArn(const char * value)221 inline CustomerGateway& WithCertificateArn(const char* value) { SetCertificateArn(value); return *this;} 222 223 224 /** 225 * <p>The current state of the customer gateway (<code>pending | available | 226 * deleting | deleted</code>).</p> 227 */ GetState()228 inline const Aws::String& GetState() const{ return m_state; } 229 230 /** 231 * <p>The current state of the customer gateway (<code>pending | available | 232 * deleting | deleted</code>).</p> 233 */ StateHasBeenSet()234 inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } 235 236 /** 237 * <p>The current state of the customer gateway (<code>pending | available | 238 * deleting | deleted</code>).</p> 239 */ SetState(const Aws::String & value)240 inline void SetState(const Aws::String& value) { m_stateHasBeenSet = true; m_state = value; } 241 242 /** 243 * <p>The current state of the customer gateway (<code>pending | available | 244 * deleting | deleted</code>).</p> 245 */ SetState(Aws::String && value)246 inline void SetState(Aws::String&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } 247 248 /** 249 * <p>The current state of the customer gateway (<code>pending | available | 250 * deleting | deleted</code>).</p> 251 */ SetState(const char * value)252 inline void SetState(const char* value) { m_stateHasBeenSet = true; m_state.assign(value); } 253 254 /** 255 * <p>The current state of the customer gateway (<code>pending | available | 256 * deleting | deleted</code>).</p> 257 */ WithState(const Aws::String & value)258 inline CustomerGateway& WithState(const Aws::String& value) { SetState(value); return *this;} 259 260 /** 261 * <p>The current state of the customer gateway (<code>pending | available | 262 * deleting | deleted</code>).</p> 263 */ WithState(Aws::String && value)264 inline CustomerGateway& WithState(Aws::String&& value) { SetState(std::move(value)); return *this;} 265 266 /** 267 * <p>The current state of the customer gateway (<code>pending | available | 268 * deleting | deleted</code>).</p> 269 */ WithState(const char * value)270 inline CustomerGateway& WithState(const char* value) { SetState(value); return *this;} 271 272 273 /** 274 * <p>The type of VPN connection the customer gateway supports 275 * (<code>ipsec.1</code>).</p> 276 */ GetType()277 inline const Aws::String& GetType() const{ return m_type; } 278 279 /** 280 * <p>The type of VPN connection the customer gateway supports 281 * (<code>ipsec.1</code>).</p> 282 */ TypeHasBeenSet()283 inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } 284 285 /** 286 * <p>The type of VPN connection the customer gateway supports 287 * (<code>ipsec.1</code>).</p> 288 */ SetType(const Aws::String & value)289 inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; } 290 291 /** 292 * <p>The type of VPN connection the customer gateway supports 293 * (<code>ipsec.1</code>).</p> 294 */ SetType(Aws::String && value)295 inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } 296 297 /** 298 * <p>The type of VPN connection the customer gateway supports 299 * (<code>ipsec.1</code>).</p> 300 */ SetType(const char * value)301 inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); } 302 303 /** 304 * <p>The type of VPN connection the customer gateway supports 305 * (<code>ipsec.1</code>).</p> 306 */ WithType(const Aws::String & value)307 inline CustomerGateway& WithType(const Aws::String& value) { SetType(value); return *this;} 308 309 /** 310 * <p>The type of VPN connection the customer gateway supports 311 * (<code>ipsec.1</code>).</p> 312 */ WithType(Aws::String && value)313 inline CustomerGateway& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;} 314 315 /** 316 * <p>The type of VPN connection the customer gateway supports 317 * (<code>ipsec.1</code>).</p> 318 */ WithType(const char * value)319 inline CustomerGateway& WithType(const char* value) { SetType(value); return *this;} 320 321 322 /** 323 * <p>The name of customer gateway device.</p> 324 */ GetDeviceName()325 inline const Aws::String& GetDeviceName() const{ return m_deviceName; } 326 327 /** 328 * <p>The name of customer gateway device.</p> 329 */ DeviceNameHasBeenSet()330 inline bool DeviceNameHasBeenSet() const { return m_deviceNameHasBeenSet; } 331 332 /** 333 * <p>The name of customer gateway device.</p> 334 */ SetDeviceName(const Aws::String & value)335 inline void SetDeviceName(const Aws::String& value) { m_deviceNameHasBeenSet = true; m_deviceName = value; } 336 337 /** 338 * <p>The name of customer gateway device.</p> 339 */ SetDeviceName(Aws::String && value)340 inline void SetDeviceName(Aws::String&& value) { m_deviceNameHasBeenSet = true; m_deviceName = std::move(value); } 341 342 /** 343 * <p>The name of customer gateway device.</p> 344 */ SetDeviceName(const char * value)345 inline void SetDeviceName(const char* value) { m_deviceNameHasBeenSet = true; m_deviceName.assign(value); } 346 347 /** 348 * <p>The name of customer gateway device.</p> 349 */ WithDeviceName(const Aws::String & value)350 inline CustomerGateway& WithDeviceName(const Aws::String& value) { SetDeviceName(value); return *this;} 351 352 /** 353 * <p>The name of customer gateway device.</p> 354 */ WithDeviceName(Aws::String && value)355 inline CustomerGateway& WithDeviceName(Aws::String&& value) { SetDeviceName(std::move(value)); return *this;} 356 357 /** 358 * <p>The name of customer gateway device.</p> 359 */ WithDeviceName(const char * value)360 inline CustomerGateway& WithDeviceName(const char* value) { SetDeviceName(value); return *this;} 361 362 363 /** 364 * <p>Any tags assigned to the customer gateway.</p> 365 */ GetTags()366 inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; } 367 368 /** 369 * <p>Any tags assigned to the customer gateway.</p> 370 */ TagsHasBeenSet()371 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } 372 373 /** 374 * <p>Any tags assigned to the customer gateway.</p> 375 */ SetTags(const Aws::Vector<Tag> & value)376 inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; } 377 378 /** 379 * <p>Any tags assigned to the customer gateway.</p> 380 */ SetTags(Aws::Vector<Tag> && value)381 inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } 382 383 /** 384 * <p>Any tags assigned to the customer gateway.</p> 385 */ WithTags(const Aws::Vector<Tag> & value)386 inline CustomerGateway& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;} 387 388 /** 389 * <p>Any tags assigned to the customer gateway.</p> 390 */ WithTags(Aws::Vector<Tag> && value)391 inline CustomerGateway& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;} 392 393 /** 394 * <p>Any tags assigned to the customer gateway.</p> 395 */ AddTags(const Tag & value)396 inline CustomerGateway& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } 397 398 /** 399 * <p>Any tags assigned to the customer gateway.</p> 400 */ AddTags(Tag && value)401 inline CustomerGateway& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } 402 403 private: 404 405 Aws::String m_bgpAsn; 406 bool m_bgpAsnHasBeenSet; 407 408 Aws::String m_customerGatewayId; 409 bool m_customerGatewayIdHasBeenSet; 410 411 Aws::String m_ipAddress; 412 bool m_ipAddressHasBeenSet; 413 414 Aws::String m_certificateArn; 415 bool m_certificateArnHasBeenSet; 416 417 Aws::String m_state; 418 bool m_stateHasBeenSet; 419 420 Aws::String m_type; 421 bool m_typeHasBeenSet; 422 423 Aws::String m_deviceName; 424 bool m_deviceNameHasBeenSet; 425 426 Aws::Vector<Tag> m_tags; 427 bool m_tagsHasBeenSet; 428 }; 429 430 } // namespace Model 431 } // namespace EC2 432 } // namespace Aws 433