/** * 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 { /** */ class CreateTransitGatewayConnectPeerRequest : public EC2Request { public: AWS_EC2_API CreateTransitGatewayConnectPeerRequest(); // 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 "CreateTransitGatewayConnectPeer"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The ID of the Connect attachment.

*/ inline const Aws::String& GetTransitGatewayAttachmentId() const{ return m_transitGatewayAttachmentId; } /** *

The ID of the Connect attachment.

*/ inline bool TransitGatewayAttachmentIdHasBeenSet() const { return m_transitGatewayAttachmentIdHasBeenSet; } /** *

The ID of the Connect attachment.

*/ inline void SetTransitGatewayAttachmentId(const Aws::String& value) { m_transitGatewayAttachmentIdHasBeenSet = true; m_transitGatewayAttachmentId = value; } /** *

The ID of the Connect attachment.

*/ inline void SetTransitGatewayAttachmentId(Aws::String&& value) { m_transitGatewayAttachmentIdHasBeenSet = true; m_transitGatewayAttachmentId = std::move(value); } /** *

The ID of the Connect attachment.

*/ inline void SetTransitGatewayAttachmentId(const char* value) { m_transitGatewayAttachmentIdHasBeenSet = true; m_transitGatewayAttachmentId.assign(value); } /** *

The ID of the Connect attachment.

*/ inline CreateTransitGatewayConnectPeerRequest& WithTransitGatewayAttachmentId(const Aws::String& value) { SetTransitGatewayAttachmentId(value); return *this;} /** *

The ID of the Connect attachment.

*/ inline CreateTransitGatewayConnectPeerRequest& WithTransitGatewayAttachmentId(Aws::String&& value) { SetTransitGatewayAttachmentId(std::move(value)); return *this;} /** *

The ID of the Connect attachment.

*/ inline CreateTransitGatewayConnectPeerRequest& WithTransitGatewayAttachmentId(const char* value) { SetTransitGatewayAttachmentId(value); return *this;} /** *

The peer IP address (GRE outer IP address) on the transit gateway side of the * Connect peer, which must be specified from a transit gateway CIDR block. If not * specified, Amazon automatically assigns the first available IP address from the * transit gateway CIDR block.

*/ inline const Aws::String& GetTransitGatewayAddress() const{ return m_transitGatewayAddress; } /** *

The peer IP address (GRE outer IP address) on the transit gateway side of the * Connect peer, which must be specified from a transit gateway CIDR block. If not * specified, Amazon automatically assigns the first available IP address from the * transit gateway CIDR block.

*/ inline bool TransitGatewayAddressHasBeenSet() const { return m_transitGatewayAddressHasBeenSet; } /** *

The peer IP address (GRE outer IP address) on the transit gateway side of the * Connect peer, which must be specified from a transit gateway CIDR block. If not * specified, Amazon automatically assigns the first available IP address from the * transit gateway CIDR block.

*/ inline void SetTransitGatewayAddress(const Aws::String& value) { m_transitGatewayAddressHasBeenSet = true; m_transitGatewayAddress = value; } /** *

The peer IP address (GRE outer IP address) on the transit gateway side of the * Connect peer, which must be specified from a transit gateway CIDR block. If not * specified, Amazon automatically assigns the first available IP address from the * transit gateway CIDR block.

*/ inline void SetTransitGatewayAddress(Aws::String&& value) { m_transitGatewayAddressHasBeenSet = true; m_transitGatewayAddress = std::move(value); } /** *

The peer IP address (GRE outer IP address) on the transit gateway side of the * Connect peer, which must be specified from a transit gateway CIDR block. If not * specified, Amazon automatically assigns the first available IP address from the * transit gateway CIDR block.

*/ inline void SetTransitGatewayAddress(const char* value) { m_transitGatewayAddressHasBeenSet = true; m_transitGatewayAddress.assign(value); } /** *

The peer IP address (GRE outer IP address) on the transit gateway side of the * Connect peer, which must be specified from a transit gateway CIDR block. If not * specified, Amazon automatically assigns the first available IP address from the * transit gateway CIDR block.

*/ inline CreateTransitGatewayConnectPeerRequest& WithTransitGatewayAddress(const Aws::String& value) { SetTransitGatewayAddress(value); return *this;} /** *

The peer IP address (GRE outer IP address) on the transit gateway side of the * Connect peer, which must be specified from a transit gateway CIDR block. If not * specified, Amazon automatically assigns the first available IP address from the * transit gateway CIDR block.

*/ inline CreateTransitGatewayConnectPeerRequest& WithTransitGatewayAddress(Aws::String&& value) { SetTransitGatewayAddress(std::move(value)); return *this;} /** *

The peer IP address (GRE outer IP address) on the transit gateway side of the * Connect peer, which must be specified from a transit gateway CIDR block. If not * specified, Amazon automatically assigns the first available IP address from the * transit gateway CIDR block.

*/ inline CreateTransitGatewayConnectPeerRequest& WithTransitGatewayAddress(const char* value) { SetTransitGatewayAddress(value); return *this;} /** *

The peer IP address (GRE outer IP address) on the appliance side of the * Connect peer.

*/ inline const Aws::String& GetPeerAddress() const{ return m_peerAddress; } /** *

The peer IP address (GRE outer IP address) on the appliance side of the * Connect peer.

*/ inline bool PeerAddressHasBeenSet() const { return m_peerAddressHasBeenSet; } /** *

The peer IP address (GRE outer IP address) on the appliance side of the * Connect peer.

*/ inline void SetPeerAddress(const Aws::String& value) { m_peerAddressHasBeenSet = true; m_peerAddress = value; } /** *

The peer IP address (GRE outer IP address) on the appliance side of the * Connect peer.

*/ inline void SetPeerAddress(Aws::String&& value) { m_peerAddressHasBeenSet = true; m_peerAddress = std::move(value); } /** *

The peer IP address (GRE outer IP address) on the appliance side of the * Connect peer.

*/ inline void SetPeerAddress(const char* value) { m_peerAddressHasBeenSet = true; m_peerAddress.assign(value); } /** *

The peer IP address (GRE outer IP address) on the appliance side of the * Connect peer.

*/ inline CreateTransitGatewayConnectPeerRequest& WithPeerAddress(const Aws::String& value) { SetPeerAddress(value); return *this;} /** *

The peer IP address (GRE outer IP address) on the appliance side of the * Connect peer.

*/ inline CreateTransitGatewayConnectPeerRequest& WithPeerAddress(Aws::String&& value) { SetPeerAddress(std::move(value)); return *this;} /** *

The peer IP address (GRE outer IP address) on the appliance side of the * Connect peer.

*/ inline CreateTransitGatewayConnectPeerRequest& WithPeerAddress(const char* value) { SetPeerAddress(value); return *this;} /** *

The BGP options for the Connect peer.

*/ inline const TransitGatewayConnectRequestBgpOptions& GetBgpOptions() const{ return m_bgpOptions; } /** *

The BGP options for the Connect peer.

*/ inline bool BgpOptionsHasBeenSet() const { return m_bgpOptionsHasBeenSet; } /** *

The BGP options for the Connect peer.

*/ inline void SetBgpOptions(const TransitGatewayConnectRequestBgpOptions& value) { m_bgpOptionsHasBeenSet = true; m_bgpOptions = value; } /** *

The BGP options for the Connect peer.

*/ inline void SetBgpOptions(TransitGatewayConnectRequestBgpOptions&& value) { m_bgpOptionsHasBeenSet = true; m_bgpOptions = std::move(value); } /** *

The BGP options for the Connect peer.

*/ inline CreateTransitGatewayConnectPeerRequest& WithBgpOptions(const TransitGatewayConnectRequestBgpOptions& value) { SetBgpOptions(value); return *this;} /** *

The BGP options for the Connect peer.

*/ inline CreateTransitGatewayConnectPeerRequest& WithBgpOptions(TransitGatewayConnectRequestBgpOptions&& value) { SetBgpOptions(std::move(value)); return *this;} /** *

The range of inside IP addresses that are used for BGP peering. You must * specify a size /29 IPv4 CIDR block from the 169.254.0.0/16 range. * The first address from the range must be configured on the appliance as the BGP * IP address. You can also optionally specify a size /125 IPv6 CIDR block from the * fd00::/8 range.

*/ inline const Aws::Vector& GetInsideCidrBlocks() const{ return m_insideCidrBlocks; } /** *

The range of inside IP addresses that are used for BGP peering. You must * specify a size /29 IPv4 CIDR block from the 169.254.0.0/16 range. * The first address from the range must be configured on the appliance as the BGP * IP address. You can also optionally specify a size /125 IPv6 CIDR block from the * fd00::/8 range.

*/ inline bool InsideCidrBlocksHasBeenSet() const { return m_insideCidrBlocksHasBeenSet; } /** *

The range of inside IP addresses that are used for BGP peering. You must * specify a size /29 IPv4 CIDR block from the 169.254.0.0/16 range. * The first address from the range must be configured on the appliance as the BGP * IP address. You can also optionally specify a size /125 IPv6 CIDR block from the * fd00::/8 range.

*/ inline void SetInsideCidrBlocks(const Aws::Vector& value) { m_insideCidrBlocksHasBeenSet = true; m_insideCidrBlocks = value; } /** *

The range of inside IP addresses that are used for BGP peering. You must * specify a size /29 IPv4 CIDR block from the 169.254.0.0/16 range. * The first address from the range must be configured on the appliance as the BGP * IP address. You can also optionally specify a size /125 IPv6 CIDR block from the * fd00::/8 range.

*/ inline void SetInsideCidrBlocks(Aws::Vector&& value) { m_insideCidrBlocksHasBeenSet = true; m_insideCidrBlocks = std::move(value); } /** *

The range of inside IP addresses that are used for BGP peering. You must * specify a size /29 IPv4 CIDR block from the 169.254.0.0/16 range. * The first address from the range must be configured on the appliance as the BGP * IP address. You can also optionally specify a size /125 IPv6 CIDR block from the * fd00::/8 range.

*/ inline CreateTransitGatewayConnectPeerRequest& WithInsideCidrBlocks(const Aws::Vector& value) { SetInsideCidrBlocks(value); return *this;} /** *

The range of inside IP addresses that are used for BGP peering. You must * specify a size /29 IPv4 CIDR block from the 169.254.0.0/16 range. * The first address from the range must be configured on the appliance as the BGP * IP address. You can also optionally specify a size /125 IPv6 CIDR block from the * fd00::/8 range.

*/ inline CreateTransitGatewayConnectPeerRequest& WithInsideCidrBlocks(Aws::Vector&& value) { SetInsideCidrBlocks(std::move(value)); return *this;} /** *

The range of inside IP addresses that are used for BGP peering. You must * specify a size /29 IPv4 CIDR block from the 169.254.0.0/16 range. * The first address from the range must be configured on the appliance as the BGP * IP address. You can also optionally specify a size /125 IPv6 CIDR block from the * fd00::/8 range.

*/ inline CreateTransitGatewayConnectPeerRequest& AddInsideCidrBlocks(const Aws::String& value) { m_insideCidrBlocksHasBeenSet = true; m_insideCidrBlocks.push_back(value); return *this; } /** *

The range of inside IP addresses that are used for BGP peering. You must * specify a size /29 IPv4 CIDR block from the 169.254.0.0/16 range. * The first address from the range must be configured on the appliance as the BGP * IP address. You can also optionally specify a size /125 IPv6 CIDR block from the * fd00::/8 range.

*/ inline CreateTransitGatewayConnectPeerRequest& AddInsideCidrBlocks(Aws::String&& value) { m_insideCidrBlocksHasBeenSet = true; m_insideCidrBlocks.push_back(std::move(value)); return *this; } /** *

The range of inside IP addresses that are used for BGP peering. You must * specify a size /29 IPv4 CIDR block from the 169.254.0.0/16 range. * The first address from the range must be configured on the appliance as the BGP * IP address. You can also optionally specify a size /125 IPv6 CIDR block from the * fd00::/8 range.

*/ inline CreateTransitGatewayConnectPeerRequest& AddInsideCidrBlocks(const char* value) { m_insideCidrBlocksHasBeenSet = true; m_insideCidrBlocks.push_back(value); return *this; } /** *

The tags to apply to the Connect peer.

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

The tags to apply to the Connect peer.

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

The tags to apply to the Connect peer.

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

The tags to apply to the Connect peer.

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

The tags to apply to the Connect peer.

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

The tags to apply to the Connect peer.

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

The tags to apply to the Connect peer.

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

The tags to apply to the Connect peer.

*/ inline CreateTransitGatewayConnectPeerRequest& AddTagSpecifications(TagSpecification&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(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 CreateTransitGatewayConnectPeerRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} private: Aws::String m_transitGatewayAttachmentId; bool m_transitGatewayAttachmentIdHasBeenSet = false; Aws::String m_transitGatewayAddress; bool m_transitGatewayAddressHasBeenSet = false; Aws::String m_peerAddress; bool m_peerAddressHasBeenSet = false; TransitGatewayConnectRequestBgpOptions m_bgpOptions; bool m_bgpOptionsHasBeenSet = false; Aws::Vector m_insideCidrBlocks; bool m_insideCidrBlocksHasBeenSet = false; Aws::Vector m_tagSpecifications; bool m_tagSpecificationsHasBeenSet = false; bool m_dryRun; bool m_dryRunHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws