/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace EC2 { namespace Model { /** *

Contains the parameters for CreateCustomerGateway.

See Also:

* AWS * API Reference

*/ class CreateCustomerGatewayRequest : public EC2Request { public: AWS_EC2_API CreateCustomerGatewayRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateCustomerGateway"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

For devices that support BGP, the customer gateway's BGP ASN.

Default: * 65000

*/ inline int GetBgpAsn() const{ return m_bgpAsn; } /** *

For devices that support BGP, the customer gateway's BGP ASN.

Default: * 65000

*/ inline bool BgpAsnHasBeenSet() const { return m_bgpAsnHasBeenSet; } /** *

For devices that support BGP, the customer gateway's BGP ASN.

Default: * 65000

*/ inline void SetBgpAsn(int value) { m_bgpAsnHasBeenSet = true; m_bgpAsn = value; } /** *

For devices that support BGP, the customer gateway's BGP ASN.

Default: * 65000

*/ inline CreateCustomerGatewayRequest& WithBgpAsn(int value) { SetBgpAsn(value); return *this;} /** *

This member has been deprecated. The Internet-routable IP address for * the customer gateway's outside interface. The address must be static.

*/ inline const Aws::String& GetPublicIp() const{ return m_publicIp; } /** *

This member has been deprecated. The Internet-routable IP address for * the customer gateway's outside interface. The address must be static.

*/ inline bool PublicIpHasBeenSet() const { return m_publicIpHasBeenSet; } /** *

This member has been deprecated. The Internet-routable IP address for * the customer gateway's outside interface. The address must be static.

*/ inline void SetPublicIp(const Aws::String& value) { m_publicIpHasBeenSet = true; m_publicIp = value; } /** *

This member has been deprecated. The Internet-routable IP address for * the customer gateway's outside interface. The address must be static.

*/ inline void SetPublicIp(Aws::String&& value) { m_publicIpHasBeenSet = true; m_publicIp = std::move(value); } /** *

This member has been deprecated. The Internet-routable IP address for * the customer gateway's outside interface. The address must be static.

*/ inline void SetPublicIp(const char* value) { m_publicIpHasBeenSet = true; m_publicIp.assign(value); } /** *

This member has been deprecated. The Internet-routable IP address for * the customer gateway's outside interface. The address must be static.

*/ inline CreateCustomerGatewayRequest& WithPublicIp(const Aws::String& value) { SetPublicIp(value); return *this;} /** *

This member has been deprecated. The Internet-routable IP address for * the customer gateway's outside interface. The address must be static.

*/ inline CreateCustomerGatewayRequest& WithPublicIp(Aws::String&& value) { SetPublicIp(std::move(value)); return *this;} /** *

This member has been deprecated. The Internet-routable IP address for * the customer gateway's outside interface. The address must be static.

*/ inline CreateCustomerGatewayRequest& WithPublicIp(const char* value) { SetPublicIp(value); return *this;} /** *

The Amazon Resource Name (ARN) for the customer gateway certificate.

*/ inline const Aws::String& GetCertificateArn() const{ return m_certificateArn; } /** *

The Amazon Resource Name (ARN) for the customer gateway certificate.

*/ inline bool CertificateArnHasBeenSet() const { return m_certificateArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the customer gateway certificate.

*/ inline void SetCertificateArn(const Aws::String& value) { m_certificateArnHasBeenSet = true; m_certificateArn = value; } /** *

The Amazon Resource Name (ARN) for the customer gateway certificate.

*/ inline void SetCertificateArn(Aws::String&& value) { m_certificateArnHasBeenSet = true; m_certificateArn = std::move(value); } /** *

The Amazon Resource Name (ARN) for the customer gateway certificate.

*/ inline void SetCertificateArn(const char* value) { m_certificateArnHasBeenSet = true; m_certificateArn.assign(value); } /** *

The Amazon Resource Name (ARN) for the customer gateway certificate.

*/ inline CreateCustomerGatewayRequest& WithCertificateArn(const Aws::String& value) { SetCertificateArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for the customer gateway certificate.

*/ inline CreateCustomerGatewayRequest& WithCertificateArn(Aws::String&& value) { SetCertificateArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the customer gateway certificate.

*/ inline CreateCustomerGatewayRequest& WithCertificateArn(const char* value) { SetCertificateArn(value); return *this;} /** *

The type of VPN connection that this customer gateway supports * (ipsec.1).

*/ inline const GatewayType& GetType() const{ return m_type; } /** *

The type of VPN connection that this customer gateway supports * (ipsec.1).

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of VPN connection that this customer gateway supports * (ipsec.1).

*/ inline void SetType(const GatewayType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of VPN connection that this customer gateway supports * (ipsec.1).

*/ inline void SetType(GatewayType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of VPN connection that this customer gateway supports * (ipsec.1).

*/ inline CreateCustomerGatewayRequest& WithType(const GatewayType& value) { SetType(value); return *this;} /** *

The type of VPN connection that this customer gateway supports * (ipsec.1).

*/ inline CreateCustomerGatewayRequest& WithType(GatewayType&& value) { SetType(std::move(value)); return *this;} /** *

The tags to apply to the customer gateway.

*/ inline const Aws::Vector& GetTagSpecifications() const{ return m_tagSpecifications; } /** *

The tags to apply to the customer gateway.

*/ inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; } /** *

The tags to apply to the customer gateway.

*/ inline void SetTagSpecifications(const Aws::Vector& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = value; } /** *

The tags to apply to the customer gateway.

*/ inline void SetTagSpecifications(Aws::Vector&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = std::move(value); } /** *

The tags to apply to the customer gateway.

*/ inline CreateCustomerGatewayRequest& WithTagSpecifications(const Aws::Vector& value) { SetTagSpecifications(value); return *this;} /** *

The tags to apply to the customer gateway.

*/ inline CreateCustomerGatewayRequest& WithTagSpecifications(Aws::Vector&& value) { SetTagSpecifications(std::move(value)); return *this;} /** *

The tags to apply to the customer gateway.

*/ inline CreateCustomerGatewayRequest& AddTagSpecifications(const TagSpecification& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(value); return *this; } /** *

The tags to apply to the customer gateway.

*/ inline CreateCustomerGatewayRequest& AddTagSpecifications(TagSpecification&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(value)); return *this; } /** *

A name for the customer gateway device.

Length Constraints: Up to 255 * characters.

*/ inline const Aws::String& GetDeviceName() const{ return m_deviceName; } /** *

A name for the customer gateway device.

Length Constraints: Up to 255 * characters.

*/ inline bool DeviceNameHasBeenSet() const { return m_deviceNameHasBeenSet; } /** *

A name for the customer gateway device.

Length Constraints: Up to 255 * characters.

*/ inline void SetDeviceName(const Aws::String& value) { m_deviceNameHasBeenSet = true; m_deviceName = value; } /** *

A name for the customer gateway device.

Length Constraints: Up to 255 * characters.

*/ inline void SetDeviceName(Aws::String&& value) { m_deviceNameHasBeenSet = true; m_deviceName = std::move(value); } /** *

A name for the customer gateway device.

Length Constraints: Up to 255 * characters.

*/ inline void SetDeviceName(const char* value) { m_deviceNameHasBeenSet = true; m_deviceName.assign(value); } /** *

A name for the customer gateway device.

Length Constraints: Up to 255 * characters.

*/ inline CreateCustomerGatewayRequest& WithDeviceName(const Aws::String& value) { SetDeviceName(value); return *this;} /** *

A name for the customer gateway device.

Length Constraints: Up to 255 * characters.

*/ inline CreateCustomerGatewayRequest& WithDeviceName(Aws::String&& value) { SetDeviceName(std::move(value)); return *this;} /** *

A name for the customer gateway device.

Length Constraints: Up to 255 * characters.

*/ inline CreateCustomerGatewayRequest& WithDeviceName(const char* value) { SetDeviceName(value); return *this;} /** *

IPv4 address for the customer gateway device's outside interface. The * address must be static.

*/ inline const Aws::String& GetIpAddress() const{ return m_ipAddress; } /** *

IPv4 address for the customer gateway device's outside interface. The * address must be static.

*/ inline bool IpAddressHasBeenSet() const { return m_ipAddressHasBeenSet; } /** *

IPv4 address for the customer gateway device's outside interface. The * address must be static.

*/ inline void SetIpAddress(const Aws::String& value) { m_ipAddressHasBeenSet = true; m_ipAddress = value; } /** *

IPv4 address for the customer gateway device's outside interface. The * address must be static.

*/ inline void SetIpAddress(Aws::String&& value) { m_ipAddressHasBeenSet = true; m_ipAddress = std::move(value); } /** *

IPv4 address for the customer gateway device's outside interface. The * address must be static.

*/ inline void SetIpAddress(const char* value) { m_ipAddressHasBeenSet = true; m_ipAddress.assign(value); } /** *

IPv4 address for the customer gateway device's outside interface. The * address must be static.

*/ inline CreateCustomerGatewayRequest& WithIpAddress(const Aws::String& value) { SetIpAddress(value); return *this;} /** *

IPv4 address for the customer gateway device's outside interface. The * address must be static.

*/ inline CreateCustomerGatewayRequest& WithIpAddress(Aws::String&& value) { SetIpAddress(std::move(value)); return *this;} /** *

IPv4 address for the customer gateway device's outside interface. The * address must be static.

*/ inline CreateCustomerGatewayRequest& WithIpAddress(const char* value) { SetIpAddress(value); return *this;} /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool GetDryRun() const{ return m_dryRun; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline CreateCustomerGatewayRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} private: int m_bgpAsn; bool m_bgpAsnHasBeenSet = false; Aws::String m_publicIp; bool m_publicIpHasBeenSet = false; Aws::String m_certificateArn; bool m_certificateArnHasBeenSet = false; GatewayType m_type; bool m_typeHasBeenSet = false; Aws::Vector m_tagSpecifications; bool m_tagSpecificationsHasBeenSet = false; Aws::String m_deviceName; bool m_deviceNameHasBeenSet = false; Aws::String m_ipAddress; bool m_ipAddressHasBeenSet = false; bool m_dryRun; bool m_dryRunHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws