/** * 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 Lightsail { namespace Model { /** *

Describes monthly data transfer rates and port information for an * instance.

See Also:

AWS * API Reference

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

The amount of data in GB allocated for monthly data transfers.

*/ inline const MonthlyTransfer& GetMonthlyTransfer() const{ return m_monthlyTransfer; } /** *

The amount of data in GB allocated for monthly data transfers.

*/ inline bool MonthlyTransferHasBeenSet() const { return m_monthlyTransferHasBeenSet; } /** *

The amount of data in GB allocated for monthly data transfers.

*/ inline void SetMonthlyTransfer(const MonthlyTransfer& value) { m_monthlyTransferHasBeenSet = true; m_monthlyTransfer = value; } /** *

The amount of data in GB allocated for monthly data transfers.

*/ inline void SetMonthlyTransfer(MonthlyTransfer&& value) { m_monthlyTransferHasBeenSet = true; m_monthlyTransfer = std::move(value); } /** *

The amount of data in GB allocated for monthly data transfers.

*/ inline InstanceNetworking& WithMonthlyTransfer(const MonthlyTransfer& value) { SetMonthlyTransfer(value); return *this;} /** *

The amount of data in GB allocated for monthly data transfers.

*/ inline InstanceNetworking& WithMonthlyTransfer(MonthlyTransfer&& value) { SetMonthlyTransfer(std::move(value)); return *this;} /** *

An array of key-value pairs containing information about the ports on the * instance.

*/ inline const Aws::Vector& GetPorts() const{ return m_ports; } /** *

An array of key-value pairs containing information about the ports on the * instance.

*/ inline bool PortsHasBeenSet() const { return m_portsHasBeenSet; } /** *

An array of key-value pairs containing information about the ports on the * instance.

*/ inline void SetPorts(const Aws::Vector& value) { m_portsHasBeenSet = true; m_ports = value; } /** *

An array of key-value pairs containing information about the ports on the * instance.

*/ inline void SetPorts(Aws::Vector&& value) { m_portsHasBeenSet = true; m_ports = std::move(value); } /** *

An array of key-value pairs containing information about the ports on the * instance.

*/ inline InstanceNetworking& WithPorts(const Aws::Vector& value) { SetPorts(value); return *this;} /** *

An array of key-value pairs containing information about the ports on the * instance.

*/ inline InstanceNetworking& WithPorts(Aws::Vector&& value) { SetPorts(std::move(value)); return *this;} /** *

An array of key-value pairs containing information about the ports on the * instance.

*/ inline InstanceNetworking& AddPorts(const InstancePortInfo& value) { m_portsHasBeenSet = true; m_ports.push_back(value); return *this; } /** *

An array of key-value pairs containing information about the ports on the * instance.

*/ inline InstanceNetworking& AddPorts(InstancePortInfo&& value) { m_portsHasBeenSet = true; m_ports.push_back(std::move(value)); return *this; } private: MonthlyTransfer m_monthlyTransfer; bool m_monthlyTransferHasBeenSet = false; Aws::Vector m_ports; bool m_portsHasBeenSet = false; }; } // namespace Model } // namespace Lightsail } // namespace Aws