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

Information about a link aggregation group (LAG).

See Also:

* AWS * API Reference

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

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 bool ConnectionsBandwidthHasBeenSet() const { return m_connectionsBandwidthHasBeenSet; } /** *

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_connectionsBandwidthHasBeenSet = true; 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_connectionsBandwidthHasBeenSet = true; 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_connectionsBandwidthHasBeenSet = true; m_connectionsBandwidth.assign(value); } /** *

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

*/ inline Lag& 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 Lag& 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 Lag& WithConnectionsBandwidth(const char* value) { SetConnectionsBandwidth(value); return *this;} /** *

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

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

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

*/ inline bool NumberOfConnectionsHasBeenSet() const { return m_numberOfConnectionsHasBeenSet; } /** *

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

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

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

*/ inline Lag& 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 bool LagIdHasBeenSet() const { return m_lagIdHasBeenSet; } /** *

The ID of the LAG.

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

The ID of the LAG.

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

The ID of the LAG.

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

The ID of the LAG.

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

The ID of the LAG.

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

The ID of the LAG.

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

The ID of the Amazon Web Services account that owns the LAG.

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

The ID of the Amazon Web Services account that owns the LAG.

*/ inline bool OwnerAccountHasBeenSet() const { return m_ownerAccountHasBeenSet; } /** *

The ID of the Amazon Web Services account that owns the LAG.

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

The ID of the Amazon Web Services account that owns the LAG.

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

The ID of the Amazon Web Services account that owns the LAG.

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

The ID of the Amazon Web Services account that owns the LAG.

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

The ID of the Amazon Web Services account that owns the LAG.

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

The ID of the Amazon Web Services account that owns the LAG.

*/ inline Lag& 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 bool LagNameHasBeenSet() const { return m_lagNameHasBeenSet; } /** *

The name of the LAG.

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

The name of the LAG.

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

The name of the LAG.

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

The name of the LAG.

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

The name of the LAG.

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

The name of the LAG.

*/ inline Lag& 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 bool LagStateHasBeenSet() const { return m_lagStateHasBeenSet; } /** *

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_lagStateHasBeenSet = true; 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_lagStateHasBeenSet = true; 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 Lag& 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 Lag& 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 bool LocationHasBeenSet() const { return m_locationHasBeenSet; } /** *

The location of the LAG.

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

The location of the LAG.

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

The location of the LAG.

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

The location of the LAG.

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

The location of the LAG.

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

The location of the LAG.

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

The Amazon Web Services Region where the connection is located.

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

The Amazon Web Services Region where the connection is located.

*/ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** *

The Amazon Web Services Region where the connection is located.

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

The Amazon Web Services Region where the connection is located.

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

The Amazon Web Services Region where the connection is located.

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

The Amazon Web Services Region where the connection is located.

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

The Amazon Web Services Region where the connection is located.

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

The Amazon Web Services Region where the connection is located.

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

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

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

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

*/ inline bool MinimumLinksHasBeenSet() const { return m_minimumLinksHasBeenSet; } /** *

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

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

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

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

*/ inline bool AwsDeviceHasBeenSet() const { return m_awsDeviceHasBeenSet; } /** *

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

*/ inline bool AwsDeviceV2HasBeenSet() const { return m_awsDeviceV2HasBeenSet; } /** *

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that hosts the LAG.

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

The Direct Connect endpoint that terminates the logical connection. This * device might be different than the device that terminates the physical * connection.

*/ inline const Aws::String& GetAwsLogicalDeviceId() const{ return m_awsLogicalDeviceId; } /** *

The Direct Connect endpoint that terminates the logical connection. This * device might be different than the device that terminates the physical * connection.

*/ inline bool AwsLogicalDeviceIdHasBeenSet() const { return m_awsLogicalDeviceIdHasBeenSet; } /** *

The Direct Connect endpoint that terminates the logical connection. This * device might be different than the device that terminates the physical * connection.

*/ inline void SetAwsLogicalDeviceId(const Aws::String& value) { m_awsLogicalDeviceIdHasBeenSet = true; m_awsLogicalDeviceId = value; } /** *

The Direct Connect endpoint that terminates the logical connection. This * device might be different than the device that terminates the physical * connection.

*/ inline void SetAwsLogicalDeviceId(Aws::String&& value) { m_awsLogicalDeviceIdHasBeenSet = true; m_awsLogicalDeviceId = std::move(value); } /** *

The Direct Connect endpoint that terminates the logical connection. This * device might be different than the device that terminates the physical * connection.

*/ inline void SetAwsLogicalDeviceId(const char* value) { m_awsLogicalDeviceIdHasBeenSet = true; m_awsLogicalDeviceId.assign(value); } /** *

The Direct Connect endpoint that terminates the logical connection. This * device might be different than the device that terminates the physical * connection.

*/ inline Lag& WithAwsLogicalDeviceId(const Aws::String& value) { SetAwsLogicalDeviceId(value); return *this;} /** *

The Direct Connect endpoint that terminates the logical connection. This * device might be different than the device that terminates the physical * connection.

*/ inline Lag& WithAwsLogicalDeviceId(Aws::String&& value) { SetAwsLogicalDeviceId(std::move(value)); return *this;} /** *

The Direct Connect endpoint that terminates the logical connection. This * device might be different than the device that terminates the physical * connection.

*/ inline Lag& WithAwsLogicalDeviceId(const char* value) { SetAwsLogicalDeviceId(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 bool ConnectionsHasBeenSet() const { return m_connectionsHasBeenSet; } /** *

The connections bundled by the LAG.

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

The connections bundled by the LAG.

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

The connections bundled by the LAG.

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

The connections bundled by the LAG.

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

The connections bundled by the LAG.

*/ inline Lag& AddConnections(const Connection& value) { m_connectionsHasBeenSet = true; m_connections.push_back(value); return *this; } /** *

The connections bundled by the LAG.

*/ inline Lag& AddConnections(Connection&& value) { m_connectionsHasBeenSet = true; 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 bool AllowsHostedConnectionsHasBeenSet() const { return m_allowsHostedConnectionsHasBeenSet; } /** *

Indicates whether the LAG can host other connections.

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

Indicates whether the LAG can host other connections.

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

Indicates whether jumbo frames are supported.

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

Indicates whether jumbo frames are supported.

*/ inline bool JumboFrameCapableHasBeenSet() const { return m_jumboFrameCapableHasBeenSet; } /** *

Indicates whether jumbo frames are supported.

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

Indicates whether jumbo frames are supported.

*/ inline Lag& 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 bool HasLogicalRedundancyHasBeenSet() const { return m_hasLogicalRedundancyHasBeenSet; } /** *

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

*/ inline void SetHasLogicalRedundancy(const HasLogicalRedundancy& value) { m_hasLogicalRedundancyHasBeenSet = true; 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_hasLogicalRedundancyHasBeenSet = true; m_hasLogicalRedundancy = std::move(value); } /** *

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

*/ inline Lag& 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 Lag& 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 bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tags associated with the LAG.

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

The tags associated with the LAG.

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

The tags associated with the LAG.

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

The tags associated with the LAG.

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

The tags associated with the LAG.

*/ inline Lag& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The tags associated with the LAG.

*/ inline Lag& AddTags(Tag&& value) { m_tagsHasBeenSet = true; 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 bool ProviderNameHasBeenSet() const { return m_providerNameHasBeenSet; } /** *

The name of the service provider associated with the LAG.

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

The name of the service provider associated with the LAG.

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

The name of the service provider associated with the LAG.

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

The name of the service provider associated with the LAG.

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

The name of the service provider associated with the LAG.

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

The name of the service provider associated with the LAG.

*/ inline Lag& WithProviderName(const char* value) { SetProviderName(value); return *this;} /** *

Indicates whether the LAG supports MAC Security (MACsec).

*/ inline bool GetMacSecCapable() const{ return m_macSecCapable; } /** *

Indicates whether the LAG supports MAC Security (MACsec).

*/ inline bool MacSecCapableHasBeenSet() const { return m_macSecCapableHasBeenSet; } /** *

Indicates whether the LAG supports MAC Security (MACsec).

*/ inline void SetMacSecCapable(bool value) { m_macSecCapableHasBeenSet = true; m_macSecCapable = value; } /** *

Indicates whether the LAG supports MAC Security (MACsec).

*/ inline Lag& WithMacSecCapable(bool value) { SetMacSecCapable(value); return *this;} /** *

The LAG MAC Security (MACsec) encryption mode.

The valid values are * no_encrypt, should_encrypt, and * must_encrypt.

*/ inline const Aws::String& GetEncryptionMode() const{ return m_encryptionMode; } /** *

The LAG MAC Security (MACsec) encryption mode.

The valid values are * no_encrypt, should_encrypt, and * must_encrypt.

*/ inline bool EncryptionModeHasBeenSet() const { return m_encryptionModeHasBeenSet; } /** *

The LAG MAC Security (MACsec) encryption mode.

The valid values are * no_encrypt, should_encrypt, and * must_encrypt.

*/ inline void SetEncryptionMode(const Aws::String& value) { m_encryptionModeHasBeenSet = true; m_encryptionMode = value; } /** *

The LAG MAC Security (MACsec) encryption mode.

The valid values are * no_encrypt, should_encrypt, and * must_encrypt.

*/ inline void SetEncryptionMode(Aws::String&& value) { m_encryptionModeHasBeenSet = true; m_encryptionMode = std::move(value); } /** *

The LAG MAC Security (MACsec) encryption mode.

The valid values are * no_encrypt, should_encrypt, and * must_encrypt.

*/ inline void SetEncryptionMode(const char* value) { m_encryptionModeHasBeenSet = true; m_encryptionMode.assign(value); } /** *

The LAG MAC Security (MACsec) encryption mode.

The valid values are * no_encrypt, should_encrypt, and * must_encrypt.

*/ inline Lag& WithEncryptionMode(const Aws::String& value) { SetEncryptionMode(value); return *this;} /** *

The LAG MAC Security (MACsec) encryption mode.

The valid values are * no_encrypt, should_encrypt, and * must_encrypt.

*/ inline Lag& WithEncryptionMode(Aws::String&& value) { SetEncryptionMode(std::move(value)); return *this;} /** *

The LAG MAC Security (MACsec) encryption mode.

The valid values are * no_encrypt, should_encrypt, and * must_encrypt.

*/ inline Lag& WithEncryptionMode(const char* value) { SetEncryptionMode(value); return *this;} /** *

The MAC Security (MACsec) security keys associated with the LAG.

*/ inline const Aws::Vector& GetMacSecKeys() const{ return m_macSecKeys; } /** *

The MAC Security (MACsec) security keys associated with the LAG.

*/ inline bool MacSecKeysHasBeenSet() const { return m_macSecKeysHasBeenSet; } /** *

The MAC Security (MACsec) security keys associated with the LAG.

*/ inline void SetMacSecKeys(const Aws::Vector& value) { m_macSecKeysHasBeenSet = true; m_macSecKeys = value; } /** *

The MAC Security (MACsec) security keys associated with the LAG.

*/ inline void SetMacSecKeys(Aws::Vector&& value) { m_macSecKeysHasBeenSet = true; m_macSecKeys = std::move(value); } /** *

The MAC Security (MACsec) security keys associated with the LAG.

*/ inline Lag& WithMacSecKeys(const Aws::Vector& value) { SetMacSecKeys(value); return *this;} /** *

The MAC Security (MACsec) security keys associated with the LAG.

*/ inline Lag& WithMacSecKeys(Aws::Vector&& value) { SetMacSecKeys(std::move(value)); return *this;} /** *

The MAC Security (MACsec) security keys associated with the LAG.

*/ inline Lag& AddMacSecKeys(const MacSecKey& value) { m_macSecKeysHasBeenSet = true; m_macSecKeys.push_back(value); return *this; } /** *

The MAC Security (MACsec) security keys associated with the LAG.

*/ inline Lag& AddMacSecKeys(MacSecKey&& value) { m_macSecKeysHasBeenSet = true; m_macSecKeys.push_back(std::move(value)); return *this; } inline const Aws::String& GetRequestId() const{ return m_requestId; } inline bool RequestIdHasBeenSet() const { return m_requestIdHasBeenSet; } inline void SetRequestId(const Aws::String& value) { m_requestIdHasBeenSet = true; m_requestId = value; } inline void SetRequestId(Aws::String&& value) { m_requestIdHasBeenSet = true; m_requestId = std::move(value); } inline void SetRequestId(const char* value) { m_requestIdHasBeenSet = true; m_requestId.assign(value); } inline Lag& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} inline Lag& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} inline Lag& WithRequestId(const char* value) { SetRequestId(value); return *this;} private: Aws::String m_connectionsBandwidth; bool m_connectionsBandwidthHasBeenSet = false; int m_numberOfConnections; bool m_numberOfConnectionsHasBeenSet = false; Aws::String m_lagId; bool m_lagIdHasBeenSet = false; Aws::String m_ownerAccount; bool m_ownerAccountHasBeenSet = false; Aws::String m_lagName; bool m_lagNameHasBeenSet = false; LagState m_lagState; bool m_lagStateHasBeenSet = false; Aws::String m_location; bool m_locationHasBeenSet = false; Aws::String m_region; bool m_regionHasBeenSet = false; int m_minimumLinks; bool m_minimumLinksHasBeenSet = false; Aws::String m_awsDevice; bool m_awsDeviceHasBeenSet = false; Aws::String m_awsDeviceV2; bool m_awsDeviceV2HasBeenSet = false; Aws::String m_awsLogicalDeviceId; bool m_awsLogicalDeviceIdHasBeenSet = false; Aws::Vector m_connections; bool m_connectionsHasBeenSet = false; bool m_allowsHostedConnections; bool m_allowsHostedConnectionsHasBeenSet = false; bool m_jumboFrameCapable; bool m_jumboFrameCapableHasBeenSet = false; HasLogicalRedundancy m_hasLogicalRedundancy; bool m_hasLogicalRedundancyHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_providerName; bool m_providerNameHasBeenSet = false; bool m_macSecCapable; bool m_macSecCapableHasBeenSet = false; Aws::String m_encryptionMode; bool m_encryptionModeHasBeenSet = false; Aws::Vector m_macSecKeys; bool m_macSecKeysHasBeenSet = false; Aws::String m_requestId; bool m_requestIdHasBeenSet = false; }; } // namespace Model } // namespace DirectConnect } // namespace Aws