/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace NetworkManager { namespace Model { /** *

Describes a core network Connect peer configuration.

See Also:

* AWS * API Reference

*/ class ConnectPeerConfiguration { public: AWS_NETWORKMANAGER_API ConnectPeerConfiguration(); AWS_NETWORKMANAGER_API ConnectPeerConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_NETWORKMANAGER_API ConnectPeerConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_NETWORKMANAGER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The IP address of a core network.

*/ inline const Aws::String& GetCoreNetworkAddress() const{ return m_coreNetworkAddress; } /** *

The IP address of a core network.

*/ inline bool CoreNetworkAddressHasBeenSet() const { return m_coreNetworkAddressHasBeenSet; } /** *

The IP address of a core network.

*/ inline void SetCoreNetworkAddress(const Aws::String& value) { m_coreNetworkAddressHasBeenSet = true; m_coreNetworkAddress = value; } /** *

The IP address of a core network.

*/ inline void SetCoreNetworkAddress(Aws::String&& value) { m_coreNetworkAddressHasBeenSet = true; m_coreNetworkAddress = std::move(value); } /** *

The IP address of a core network.

*/ inline void SetCoreNetworkAddress(const char* value) { m_coreNetworkAddressHasBeenSet = true; m_coreNetworkAddress.assign(value); } /** *

The IP address of a core network.

*/ inline ConnectPeerConfiguration& WithCoreNetworkAddress(const Aws::String& value) { SetCoreNetworkAddress(value); return *this;} /** *

The IP address of a core network.

*/ inline ConnectPeerConfiguration& WithCoreNetworkAddress(Aws::String&& value) { SetCoreNetworkAddress(std::move(value)); return *this;} /** *

The IP address of a core network.

*/ inline ConnectPeerConfiguration& WithCoreNetworkAddress(const char* value) { SetCoreNetworkAddress(value); return *this;} /** *

The IP address of the Connect peer.

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

The IP address of the Connect peer.

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

The IP address of the Connect peer.

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

The IP address of the Connect peer.

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

The IP address of the Connect peer.

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

The IP address of the Connect peer.

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

The IP address of the Connect peer.

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

The IP address of the Connect peer.

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

The inside IP addresses used for a Connect peer configuration.

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

The inside IP addresses used for a Connect peer configuration.

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

The inside IP addresses used for a Connect peer configuration.

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

The inside IP addresses used for a Connect peer configuration.

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

The inside IP addresses used for a Connect peer configuration.

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

The inside IP addresses used for a Connect peer configuration.

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

The inside IP addresses used for a Connect peer configuration.

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

The inside IP addresses used for a Connect peer configuration.

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

The inside IP addresses used for a Connect peer configuration.

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

The protocol used for a Connect peer configuration.

*/ inline const TunnelProtocol& GetProtocol() const{ return m_protocol; } /** *

The protocol used for a Connect peer configuration.

*/ inline bool ProtocolHasBeenSet() const { return m_protocolHasBeenSet; } /** *

The protocol used for a Connect peer configuration.

*/ inline void SetProtocol(const TunnelProtocol& value) { m_protocolHasBeenSet = true; m_protocol = value; } /** *

The protocol used for a Connect peer configuration.

*/ inline void SetProtocol(TunnelProtocol&& value) { m_protocolHasBeenSet = true; m_protocol = std::move(value); } /** *

The protocol used for a Connect peer configuration.

*/ inline ConnectPeerConfiguration& WithProtocol(const TunnelProtocol& value) { SetProtocol(value); return *this;} /** *

The protocol used for a Connect peer configuration.

*/ inline ConnectPeerConfiguration& WithProtocol(TunnelProtocol&& value) { SetProtocol(std::move(value)); return *this;} /** *

The Connect peer BGP configurations.

*/ inline const Aws::Vector& GetBgpConfigurations() const{ return m_bgpConfigurations; } /** *

The Connect peer BGP configurations.

*/ inline bool BgpConfigurationsHasBeenSet() const { return m_bgpConfigurationsHasBeenSet; } /** *

The Connect peer BGP configurations.

*/ inline void SetBgpConfigurations(const Aws::Vector& value) { m_bgpConfigurationsHasBeenSet = true; m_bgpConfigurations = value; } /** *

The Connect peer BGP configurations.

*/ inline void SetBgpConfigurations(Aws::Vector&& value) { m_bgpConfigurationsHasBeenSet = true; m_bgpConfigurations = std::move(value); } /** *

The Connect peer BGP configurations.

*/ inline ConnectPeerConfiguration& WithBgpConfigurations(const Aws::Vector& value) { SetBgpConfigurations(value); return *this;} /** *

The Connect peer BGP configurations.

*/ inline ConnectPeerConfiguration& WithBgpConfigurations(Aws::Vector&& value) { SetBgpConfigurations(std::move(value)); return *this;} /** *

The Connect peer BGP configurations.

*/ inline ConnectPeerConfiguration& AddBgpConfigurations(const ConnectPeerBgpConfiguration& value) { m_bgpConfigurationsHasBeenSet = true; m_bgpConfigurations.push_back(value); return *this; } /** *

The Connect peer BGP configurations.

*/ inline ConnectPeerConfiguration& AddBgpConfigurations(ConnectPeerBgpConfiguration&& value) { m_bgpConfigurationsHasBeenSet = true; m_bgpConfigurations.push_back(std::move(value)); return *this; } private: Aws::String m_coreNetworkAddress; bool m_coreNetworkAddressHasBeenSet = false; Aws::String m_peerAddress; bool m_peerAddressHasBeenSet = false; Aws::Vector m_insideCidrBlocks; bool m_insideCidrBlocksHasBeenSet = false; TunnelProtocol m_protocol; bool m_protocolHasBeenSet = false; Aws::Vector m_bgpConfigurations; bool m_bgpConfigurationsHasBeenSet = false; }; } // namespace Model } // namespace NetworkManager } // namespace Aws