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

Information about the network impairment for a specific network measured by * Amazon CloudWatch Internet Monitor.

See Also:

AWS * API Reference

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

The networks that could be impacted by a network impairment event.

*/ inline const Aws::Vector& GetNetworks() const{ return m_networks; } /** *

The networks that could be impacted by a network impairment event.

*/ inline bool NetworksHasBeenSet() const { return m_networksHasBeenSet; } /** *

The networks that could be impacted by a network impairment event.

*/ inline void SetNetworks(const Aws::Vector& value) { m_networksHasBeenSet = true; m_networks = value; } /** *

The networks that could be impacted by a network impairment event.

*/ inline void SetNetworks(Aws::Vector&& value) { m_networksHasBeenSet = true; m_networks = std::move(value); } /** *

The networks that could be impacted by a network impairment event.

*/ inline NetworkImpairment& WithNetworks(const Aws::Vector& value) { SetNetworks(value); return *this;} /** *

The networks that could be impacted by a network impairment event.

*/ inline NetworkImpairment& WithNetworks(Aws::Vector&& value) { SetNetworks(std::move(value)); return *this;} /** *

The networks that could be impacted by a network impairment event.

*/ inline NetworkImpairment& AddNetworks(const Network& value) { m_networksHasBeenSet = true; m_networks.push_back(value); return *this; } /** *

The networks that could be impacted by a network impairment event.

*/ inline NetworkImpairment& AddNetworks(Network&& value) { m_networksHasBeenSet = true; m_networks.push_back(std::move(value)); return *this; } /** *

The combination of the Autonomous System Number (ASN) of the network and the * name of the network.

*/ inline const Aws::Vector& GetAsPath() const{ return m_asPath; } /** *

The combination of the Autonomous System Number (ASN) of the network and the * name of the network.

*/ inline bool AsPathHasBeenSet() const { return m_asPathHasBeenSet; } /** *

The combination of the Autonomous System Number (ASN) of the network and the * name of the network.

*/ inline void SetAsPath(const Aws::Vector& value) { m_asPathHasBeenSet = true; m_asPath = value; } /** *

The combination of the Autonomous System Number (ASN) of the network and the * name of the network.

*/ inline void SetAsPath(Aws::Vector&& value) { m_asPathHasBeenSet = true; m_asPath = std::move(value); } /** *

The combination of the Autonomous System Number (ASN) of the network and the * name of the network.

*/ inline NetworkImpairment& WithAsPath(const Aws::Vector& value) { SetAsPath(value); return *this;} /** *

The combination of the Autonomous System Number (ASN) of the network and the * name of the network.

*/ inline NetworkImpairment& WithAsPath(Aws::Vector&& value) { SetAsPath(std::move(value)); return *this;} /** *

The combination of the Autonomous System Number (ASN) of the network and the * name of the network.

*/ inline NetworkImpairment& AddAsPath(const Network& value) { m_asPathHasBeenSet = true; m_asPath.push_back(value); return *this; } /** *

The combination of the Autonomous System Number (ASN) of the network and the * name of the network.

*/ inline NetworkImpairment& AddAsPath(Network&& value) { m_asPathHasBeenSet = true; m_asPath.push_back(std::move(value)); return *this; } /** *

Type of network impairment.

*/ inline const TriangulationEventType& GetNetworkEventType() const{ return m_networkEventType; } /** *

Type of network impairment.

*/ inline bool NetworkEventTypeHasBeenSet() const { return m_networkEventTypeHasBeenSet; } /** *

Type of network impairment.

*/ inline void SetNetworkEventType(const TriangulationEventType& value) { m_networkEventTypeHasBeenSet = true; m_networkEventType = value; } /** *

Type of network impairment.

*/ inline void SetNetworkEventType(TriangulationEventType&& value) { m_networkEventTypeHasBeenSet = true; m_networkEventType = std::move(value); } /** *

Type of network impairment.

*/ inline NetworkImpairment& WithNetworkEventType(const TriangulationEventType& value) { SetNetworkEventType(value); return *this;} /** *

Type of network impairment.

*/ inline NetworkImpairment& WithNetworkEventType(TriangulationEventType&& value) { SetNetworkEventType(std::move(value)); return *this;} private: Aws::Vector m_networks; bool m_networksHasBeenSet = false; Aws::Vector m_asPath; bool m_asPathHasBeenSet = false; TriangulationEventType m_networkEventType; bool m_networkEventTypeHasBeenSet = false; }; } // namespace Model } // namespace InternetMonitor } // namespace Aws