/** * 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 #include namespace Aws { template class AmazonWebServiceResult; namespace Utils { namespace Json { class JsonValue; } // namespace Json } // namespace Utils namespace DirectConnect { namespace Model { /** *

Information about a link aggregation group (LAG).

See Also:

* AWS * API Reference

*/ class AWS_DIRECTCONNECT_API CreateLagResult { public: CreateLagResult(); CreateLagResult(const Aws::AmazonWebServiceResult& result); CreateLagResult& operator=(const Aws::AmazonWebServiceResult& result); /** *

The individual bandwidth of the physical connections bundled by the LAG. The * possible values are 1Gbps and 10Gbps.

*/ inline const Aws::String& GetConnectionsBandwidth() const{ return m_connectionsBandwidth; } /** *

The individual bandwidth of the physical connections bundled by the LAG. The * possible values are 1Gbps and 10Gbps.

*/ inline void SetConnectionsBandwidth(const Aws::String& value) { m_connectionsBandwidth = value; } /** *

The individual bandwidth of the physical connections bundled by the LAG. The * possible values are 1Gbps and 10Gbps.

*/ inline void SetConnectionsBandwidth(Aws::String&& value) { m_connectionsBandwidth = std::move(value); } /** *

The individual bandwidth of the physical connections bundled by the LAG. The * possible values are 1Gbps and 10Gbps.

*/ inline void SetConnectionsBandwidth(const char* value) { m_connectionsBandwidth.assign(value); } /** *

The individual bandwidth of the physical connections bundled by the LAG. The * possible values are 1Gbps and 10Gbps.

*/ inline CreateLagResult& WithConnectionsBandwidth(const Aws::String& value) { SetConnectionsBandwidth(value); return *this;} /** *

The individual bandwidth of the physical connections bundled by the LAG. The * possible values are 1Gbps and 10Gbps.

*/ inline CreateLagResult& WithConnectionsBandwidth(Aws::String&& value) { SetConnectionsBandwidth(std::move(value)); return *this;} /** *

The individual bandwidth of the physical connections bundled by the LAG. The * possible values are 1Gbps and 10Gbps.

*/ inline CreateLagResult& WithConnectionsBandwidth(const char* value) { SetConnectionsBandwidth(value); return *this;} /** *

The number of physical connections bundled by the LAG, up to a maximum of * 10.

*/ inline int GetNumberOfConnections() const{ return m_numberOfConnections; } /** *

The number of physical connections bundled by the LAG, up to a maximum of * 10.

*/ inline void SetNumberOfConnections(int value) { m_numberOfConnections = value; } /** *

The number of physical connections bundled by the LAG, up to a maximum of * 10.

*/ inline CreateLagResult& WithNumberOfConnections(int value) { SetNumberOfConnections(value); return *this;} /** *

The ID of the LAG.

*/ inline const Aws::String& GetLagId() const{ return m_lagId; } /** *

The ID of the LAG.

*/ inline void SetLagId(const Aws::String& value) { m_lagId = value; } /** *

The ID of the LAG.

*/ inline void SetLagId(Aws::String&& value) { m_lagId = std::move(value); } /** *

The ID of the LAG.

*/ inline void SetLagId(const char* value) { m_lagId.assign(value); } /** *

The ID of the LAG.

*/ inline CreateLagResult& WithLagId(const Aws::String& value) { SetLagId(value); return *this;} /** *

The ID of the LAG.

*/ inline CreateLagResult& WithLagId(Aws::String&& value) { SetLagId(std::move(value)); return *this;} /** *

The ID of the LAG.

*/ inline CreateLagResult& WithLagId(const char* value) { SetLagId(value); return *this;} /** *

The ID of the AWS account that owns the LAG.

*/ inline const Aws::String& GetOwnerAccount() const{ return m_ownerAccount; } /** *

The ID of the AWS account that owns the LAG.

*/ inline void SetOwnerAccount(const Aws::String& value) { m_ownerAccount = value; } /** *

The ID of the AWS account that owns the LAG.

*/ inline void SetOwnerAccount(Aws::String&& value) { m_ownerAccount = std::move(value); } /** *

The ID of the AWS account that owns the LAG.

*/ inline void SetOwnerAccount(const char* value) { m_ownerAccount.assign(value); } /** *

The ID of the AWS account that owns the LAG.

*/ inline CreateLagResult& WithOwnerAccount(const Aws::String& value) { SetOwnerAccount(value); return *this;} /** *

The ID of the AWS account that owns the LAG.

*/ inline CreateLagResult& WithOwnerAccount(Aws::String&& value) { SetOwnerAccount(std::move(value)); return *this;} /** *

The ID of the AWS account that owns the LAG.

*/ inline CreateLagResult& WithOwnerAccount(const char* value) { SetOwnerAccount(value); return *this;} /** *

The name of the LAG.

*/ inline const Aws::String& GetLagName() const{ return m_lagName; } /** *

The name of the LAG.

*/ inline void SetLagName(const Aws::String& value) { m_lagName = value; } /** *

The name of the LAG.

*/ inline void SetLagName(Aws::String&& value) { m_lagName = std::move(value); } /** *

The name of the LAG.

*/ inline void SetLagName(const char* value) { m_lagName.assign(value); } /** *

The name of the LAG.

*/ inline CreateLagResult& WithLagName(const Aws::String& value) { SetLagName(value); return *this;} /** *

The name of the LAG.

*/ inline CreateLagResult& WithLagName(Aws::String&& value) { SetLagName(std::move(value)); return *this;} /** *

The name of the LAG.

*/ inline CreateLagResult& WithLagName(const char* value) { SetLagName(value); return *this;} /** *

The state of the LAG. The following are the possible values:

  • *

    requested: The initial state of a LAG. The LAG stays in the * requested state until the Letter of Authorization (LOA) is available.

  • *
  • pending: The LAG has been approved and is being * initialized.

  • available: The network link is * established and the LAG is ready for use.

  • down: * The network link is down.

  • deleting: The LAG is * being deleted.

  • deleted: The LAG is deleted.

    *
  • unknown: The state of the LAG is not available.

    *
*/ inline const LagState& GetLagState() const{ return m_lagState; } /** *

The state of the LAG. The following are the possible values:

  • *

    requested: The initial state of a LAG. The LAG stays in the * requested state until the Letter of Authorization (LOA) is available.

  • *
  • pending: The LAG has been approved and is being * initialized.

  • available: The network link is * established and the LAG is ready for use.

  • down: * The network link is down.

  • deleting: The LAG is * being deleted.

  • deleted: The LAG is deleted.

    *
  • unknown: The state of the LAG is not available.

    *
*/ inline void SetLagState(const LagState& value) { m_lagState = value; } /** *

The state of the LAG. The following are the possible values:

  • *

    requested: The initial state of a LAG. The LAG stays in the * requested state until the Letter of Authorization (LOA) is available.

  • *
  • pending: The LAG has been approved and is being * initialized.

  • available: The network link is * established and the LAG is ready for use.

  • down: * The network link is down.

  • deleting: The LAG is * being deleted.

  • deleted: The LAG is deleted.

    *
  • unknown: The state of the LAG is not available.

    *
*/ inline void SetLagState(LagState&& value) { m_lagState = std::move(value); } /** *

The state of the LAG. The following are the possible values:

  • *

    requested: The initial state of a LAG. The LAG stays in the * requested state until the Letter of Authorization (LOA) is available.

  • *
  • pending: The LAG has been approved and is being * initialized.

  • available: The network link is * established and the LAG is ready for use.

  • down: * The network link is down.

  • deleting: The LAG is * being deleted.

  • deleted: The LAG is deleted.

    *
  • unknown: The state of the LAG is not available.

    *
*/ inline CreateLagResult& WithLagState(const LagState& value) { SetLagState(value); return *this;} /** *

The state of the LAG. The following are the possible values:

  • *

    requested: The initial state of a LAG. The LAG stays in the * requested state until the Letter of Authorization (LOA) is available.

  • *
  • pending: The LAG has been approved and is being * initialized.

  • available: The network link is * established and the LAG is ready for use.

  • down: * The network link is down.

  • deleting: The LAG is * being deleted.

  • deleted: The LAG is deleted.

    *
  • unknown: The state of the LAG is not available.

    *
*/ inline CreateLagResult& WithLagState(LagState&& value) { SetLagState(std::move(value)); return *this;} /** *

The location of the LAG.

*/ inline const Aws::String& GetLocation() const{ return m_location; } /** *

The location of the LAG.

*/ inline void SetLocation(const Aws::String& value) { m_location = value; } /** *

The location of the LAG.

*/ inline void SetLocation(Aws::String&& value) { m_location = std::move(value); } /** *

The location of the LAG.

*/ inline void SetLocation(const char* value) { m_location.assign(value); } /** *

The location of the LAG.

*/ inline CreateLagResult& WithLocation(const Aws::String& value) { SetLocation(value); return *this;} /** *

The location of the LAG.

*/ inline CreateLagResult& WithLocation(Aws::String&& value) { SetLocation(std::move(value)); return *this;} /** *

The location of the LAG.

*/ inline CreateLagResult& WithLocation(const char* value) { SetLocation(value); return *this;} /** *

The AWS Region where the connection is located.

*/ inline const Aws::String& GetRegion() const{ return m_region; } /** *

The AWS Region where the connection is located.

*/ inline void SetRegion(const Aws::String& value) { m_region = value; } /** *

The AWS Region where the connection is located.

*/ inline void SetRegion(Aws::String&& value) { m_region = std::move(value); } /** *

The AWS Region where the connection is located.

*/ inline void SetRegion(const char* value) { m_region.assign(value); } /** *

The AWS Region where the connection is located.

*/ inline CreateLagResult& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *

The AWS Region where the connection is located.

*/ inline CreateLagResult& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** *

The AWS Region where the connection is located.

*/ inline CreateLagResult& WithRegion(const char* value) { SetRegion(value); return *this;} /** *

The minimum number of physical connections that must be operational for the * LAG itself to be operational.

*/ inline int GetMinimumLinks() const{ return m_minimumLinks; } /** *

The minimum number of physical connections that must be operational for the * LAG itself to be operational.

*/ inline void SetMinimumLinks(int value) { m_minimumLinks = value; } /** *

The minimum number of physical connections that must be operational for the * LAG itself to be operational.

*/ inline CreateLagResult& WithMinimumLinks(int value) { SetMinimumLinks(value); return *this;} /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline const Aws::String& GetAwsDevice() const{ return m_awsDevice; } /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline void SetAwsDevice(const Aws::String& value) { m_awsDevice = value; } /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline void SetAwsDevice(Aws::String&& value) { m_awsDevice = std::move(value); } /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline void SetAwsDevice(const char* value) { m_awsDevice.assign(value); } /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline CreateLagResult& WithAwsDevice(const Aws::String& value) { SetAwsDevice(value); return *this;} /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline CreateLagResult& WithAwsDevice(Aws::String&& value) { SetAwsDevice(std::move(value)); return *this;} /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline CreateLagResult& WithAwsDevice(const char* value) { SetAwsDevice(value); return *this;} /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline const Aws::String& GetAwsDeviceV2() const{ return m_awsDeviceV2; } /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline void SetAwsDeviceV2(const Aws::String& value) { m_awsDeviceV2 = value; } /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline void SetAwsDeviceV2(Aws::String&& value) { m_awsDeviceV2 = std::move(value); } /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline void SetAwsDeviceV2(const char* value) { m_awsDeviceV2.assign(value); } /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline CreateLagResult& WithAwsDeviceV2(const Aws::String& value) { SetAwsDeviceV2(value); return *this;} /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline CreateLagResult& WithAwsDeviceV2(Aws::String&& value) { SetAwsDeviceV2(std::move(value)); return *this;} /** *

The AWS Direct Connect endpoint that hosts the LAG.

*/ inline CreateLagResult& WithAwsDeviceV2(const char* value) { SetAwsDeviceV2(value); return *this;} /** *

The connections bundled by the LAG.

*/ inline const Aws::Vector& GetConnections() const{ return m_connections; } /** *

The connections bundled by the LAG.

*/ inline void SetConnections(const Aws::Vector& value) { m_connections = value; } /** *

The connections bundled by the LAG.

*/ inline void SetConnections(Aws::Vector&& value) { m_connections = std::move(value); } /** *

The connections bundled by the LAG.

*/ inline CreateLagResult& WithConnections(const Aws::Vector& value) { SetConnections(value); return *this;} /** *

The connections bundled by the LAG.

*/ inline CreateLagResult& WithConnections(Aws::Vector&& value) { SetConnections(std::move(value)); return *this;} /** *

The connections bundled by the LAG.

*/ inline CreateLagResult& AddConnections(const Connection& value) { m_connections.push_back(value); return *this; } /** *

The connections bundled by the LAG.

*/ inline CreateLagResult& AddConnections(Connection&& value) { m_connections.push_back(std::move(value)); return *this; } /** *

Indicates whether the LAG can host other connections.

*/ inline bool GetAllowsHostedConnections() const{ return m_allowsHostedConnections; } /** *

Indicates whether the LAG can host other connections.

*/ inline void SetAllowsHostedConnections(bool value) { m_allowsHostedConnections = value; } /** *

Indicates whether the LAG can host other connections.

*/ inline CreateLagResult& WithAllowsHostedConnections(bool value) { SetAllowsHostedConnections(value); return *this;} /** *

Indicates whether jumbo frames (9001 MTU) are supported.

*/ inline bool GetJumboFrameCapable() const{ return m_jumboFrameCapable; } /** *

Indicates whether jumbo frames (9001 MTU) are supported.

*/ inline void SetJumboFrameCapable(bool value) { m_jumboFrameCapable = value; } /** *

Indicates whether jumbo frames (9001 MTU) are supported.

*/ inline CreateLagResult& WithJumboFrameCapable(bool value) { SetJumboFrameCapable(value); return *this;} /** *

Indicates whether the LAG supports a secondary BGP peer in the same address * family (IPv4/IPv6).

*/ inline const HasLogicalRedundancy& GetHasLogicalRedundancy() const{ return m_hasLogicalRedundancy; } /** *

Indicates whether the LAG supports a secondary BGP peer in the same address * family (IPv4/IPv6).

*/ inline void SetHasLogicalRedundancy(const HasLogicalRedundancy& value) { m_hasLogicalRedundancy = value; } /** *

Indicates whether the LAG supports a secondary BGP peer in the same address * family (IPv4/IPv6).

*/ inline void SetHasLogicalRedundancy(HasLogicalRedundancy&& value) { m_hasLogicalRedundancy = std::move(value); } /** *

Indicates whether the LAG supports a secondary BGP peer in the same address * family (IPv4/IPv6).

*/ inline CreateLagResult& WithHasLogicalRedundancy(const HasLogicalRedundancy& value) { SetHasLogicalRedundancy(value); return *this;} /** *

Indicates whether the LAG supports a secondary BGP peer in the same address * family (IPv4/IPv6).

*/ inline CreateLagResult& WithHasLogicalRedundancy(HasLogicalRedundancy&& value) { SetHasLogicalRedundancy(std::move(value)); return *this;} /** *

The tags associated with the LAG.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The tags associated with the LAG.

*/ inline void SetTags(const Aws::Vector& value) { m_tags = value; } /** *

The tags associated with the LAG.

*/ inline void SetTags(Aws::Vector&& value) { m_tags = std::move(value); } /** *

The tags associated with the LAG.

*/ inline CreateLagResult& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The tags associated with the LAG.

*/ inline CreateLagResult& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The tags associated with the LAG.

*/ inline CreateLagResult& AddTags(const Tag& value) { m_tags.push_back(value); return *this; } /** *

The tags associated with the LAG.

*/ inline CreateLagResult& AddTags(Tag&& value) { m_tags.push_back(std::move(value)); return *this; } /** *

The name of the service provider associated with the LAG.

*/ inline const Aws::String& GetProviderName() const{ return m_providerName; } /** *

The name of the service provider associated with the LAG.

*/ inline void SetProviderName(const Aws::String& value) { m_providerName = value; } /** *

The name of the service provider associated with the LAG.

*/ inline void SetProviderName(Aws::String&& value) { m_providerName = std::move(value); } /** *

The name of the service provider associated with the LAG.

*/ inline void SetProviderName(const char* value) { m_providerName.assign(value); } /** *

The name of the service provider associated with the LAG.

*/ inline CreateLagResult& WithProviderName(const Aws::String& value) { SetProviderName(value); return *this;} /** *

The name of the service provider associated with the LAG.

*/ inline CreateLagResult& WithProviderName(Aws::String&& value) { SetProviderName(std::move(value)); return *this;} /** *

The name of the service provider associated with the LAG.

*/ inline CreateLagResult& WithProviderName(const char* value) { SetProviderName(value); return *this;} private: Aws::String m_connectionsBandwidth; int m_numberOfConnections; Aws::String m_lagId; Aws::String m_ownerAccount; Aws::String m_lagName; LagState m_lagState; Aws::String m_location; Aws::String m_region; int m_minimumLinks; Aws::String m_awsDevice; Aws::String m_awsDeviceV2; Aws::Vector m_connections; bool m_allowsHostedConnections; bool m_jumboFrameCapable; HasLogicalRedundancy m_hasLogicalRedundancy; Aws::Vector m_tags; Aws::String m_providerName; }; } // namespace Model } // namespace DirectConnect } // namespace Aws