/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #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 Direct Connect gateway, which enables you to connect * virtual interfaces and virtual private gateway or transit * gateways.

See Also:

AWS * API Reference

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

The ID of the Direct Connect gateway.

*/ inline const Aws::String& GetDirectConnectGatewayId() const{ return m_directConnectGatewayId; } /** *

The ID of the Direct Connect gateway.

*/ inline bool DirectConnectGatewayIdHasBeenSet() const { return m_directConnectGatewayIdHasBeenSet; } /** *

The ID of the Direct Connect gateway.

*/ inline void SetDirectConnectGatewayId(const Aws::String& value) { m_directConnectGatewayIdHasBeenSet = true; m_directConnectGatewayId = value; } /** *

The ID of the Direct Connect gateway.

*/ inline void SetDirectConnectGatewayId(Aws::String&& value) { m_directConnectGatewayIdHasBeenSet = true; m_directConnectGatewayId = std::move(value); } /** *

The ID of the Direct Connect gateway.

*/ inline void SetDirectConnectGatewayId(const char* value) { m_directConnectGatewayIdHasBeenSet = true; m_directConnectGatewayId.assign(value); } /** *

The ID of the Direct Connect gateway.

*/ inline DirectConnectGateway& WithDirectConnectGatewayId(const Aws::String& value) { SetDirectConnectGatewayId(value); return *this;} /** *

The ID of the Direct Connect gateway.

*/ inline DirectConnectGateway& WithDirectConnectGatewayId(Aws::String&& value) { SetDirectConnectGatewayId(std::move(value)); return *this;} /** *

The ID of the Direct Connect gateway.

*/ inline DirectConnectGateway& WithDirectConnectGatewayId(const char* value) { SetDirectConnectGatewayId(value); return *this;} /** *

The name of the Direct Connect gateway.

*/ inline const Aws::String& GetDirectConnectGatewayName() const{ return m_directConnectGatewayName; } /** *

The name of the Direct Connect gateway.

*/ inline bool DirectConnectGatewayNameHasBeenSet() const { return m_directConnectGatewayNameHasBeenSet; } /** *

The name of the Direct Connect gateway.

*/ inline void SetDirectConnectGatewayName(const Aws::String& value) { m_directConnectGatewayNameHasBeenSet = true; m_directConnectGatewayName = value; } /** *

The name of the Direct Connect gateway.

*/ inline void SetDirectConnectGatewayName(Aws::String&& value) { m_directConnectGatewayNameHasBeenSet = true; m_directConnectGatewayName = std::move(value); } /** *

The name of the Direct Connect gateway.

*/ inline void SetDirectConnectGatewayName(const char* value) { m_directConnectGatewayNameHasBeenSet = true; m_directConnectGatewayName.assign(value); } /** *

The name of the Direct Connect gateway.

*/ inline DirectConnectGateway& WithDirectConnectGatewayName(const Aws::String& value) { SetDirectConnectGatewayName(value); return *this;} /** *

The name of the Direct Connect gateway.

*/ inline DirectConnectGateway& WithDirectConnectGatewayName(Aws::String&& value) { SetDirectConnectGatewayName(std::move(value)); return *this;} /** *

The name of the Direct Connect gateway.

*/ inline DirectConnectGateway& WithDirectConnectGatewayName(const char* value) { SetDirectConnectGatewayName(value); return *this;} /** *

The autonomous system number (ASN) for the Amazon side of the connection.

*/ inline long long GetAmazonSideAsn() const{ return m_amazonSideAsn; } /** *

The autonomous system number (ASN) for the Amazon side of the connection.

*/ inline bool AmazonSideAsnHasBeenSet() const { return m_amazonSideAsnHasBeenSet; } /** *

The autonomous system number (ASN) for the Amazon side of the connection.

*/ inline void SetAmazonSideAsn(long long value) { m_amazonSideAsnHasBeenSet = true; m_amazonSideAsn = value; } /** *

The autonomous system number (ASN) for the Amazon side of the connection.

*/ inline DirectConnectGateway& WithAmazonSideAsn(long long value) { SetAmazonSideAsn(value); return *this;} /** *

The ID of the Amazon Web Services account that owns the Direct Connect * gateway.

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

The ID of the Amazon Web Services account that owns the Direct Connect * gateway.

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

The ID of the Amazon Web Services account that owns the Direct Connect * gateway.

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

The ID of the Amazon Web Services account that owns the Direct Connect * gateway.

*/ 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 Direct Connect * gateway.

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

The ID of the Amazon Web Services account that owns the Direct Connect * gateway.

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

The ID of the Amazon Web Services account that owns the Direct Connect * gateway.

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

The ID of the Amazon Web Services account that owns the Direct Connect * gateway.

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

The state of the Direct Connect gateway. The following are the possible * values:

  • pending: The initial state after calling * CreateDirectConnectGateway.

  • available: * The Direct Connect gateway is ready for use.

  • * deleting: The initial state after calling * DeleteDirectConnectGateway.

  • deleted: The * Direct Connect gateway is deleted and cannot pass traffic.

*/ inline const DirectConnectGatewayState& GetDirectConnectGatewayState() const{ return m_directConnectGatewayState; } /** *

The state of the Direct Connect gateway. The following are the possible * values:

  • pending: The initial state after calling * CreateDirectConnectGateway.

  • available: * The Direct Connect gateway is ready for use.

  • * deleting: The initial state after calling * DeleteDirectConnectGateway.

  • deleted: The * Direct Connect gateway is deleted and cannot pass traffic.

*/ inline bool DirectConnectGatewayStateHasBeenSet() const { return m_directConnectGatewayStateHasBeenSet; } /** *

The state of the Direct Connect gateway. The following are the possible * values:

  • pending: The initial state after calling * CreateDirectConnectGateway.

  • available: * The Direct Connect gateway is ready for use.

  • * deleting: The initial state after calling * DeleteDirectConnectGateway.

  • deleted: The * Direct Connect gateway is deleted and cannot pass traffic.

*/ inline void SetDirectConnectGatewayState(const DirectConnectGatewayState& value) { m_directConnectGatewayStateHasBeenSet = true; m_directConnectGatewayState = value; } /** *

The state of the Direct Connect gateway. The following are the possible * values:

  • pending: The initial state after calling * CreateDirectConnectGateway.

  • available: * The Direct Connect gateway is ready for use.

  • * deleting: The initial state after calling * DeleteDirectConnectGateway.

  • deleted: The * Direct Connect gateway is deleted and cannot pass traffic.

*/ inline void SetDirectConnectGatewayState(DirectConnectGatewayState&& value) { m_directConnectGatewayStateHasBeenSet = true; m_directConnectGatewayState = std::move(value); } /** *

The state of the Direct Connect gateway. The following are the possible * values:

  • pending: The initial state after calling * CreateDirectConnectGateway.

  • available: * The Direct Connect gateway is ready for use.

  • * deleting: The initial state after calling * DeleteDirectConnectGateway.

  • deleted: The * Direct Connect gateway is deleted and cannot pass traffic.

*/ inline DirectConnectGateway& WithDirectConnectGatewayState(const DirectConnectGatewayState& value) { SetDirectConnectGatewayState(value); return *this;} /** *

The state of the Direct Connect gateway. The following are the possible * values:

  • pending: The initial state after calling * CreateDirectConnectGateway.

  • available: * The Direct Connect gateway is ready for use.

  • * deleting: The initial state after calling * DeleteDirectConnectGateway.

  • deleted: The * Direct Connect gateway is deleted and cannot pass traffic.

*/ inline DirectConnectGateway& WithDirectConnectGatewayState(DirectConnectGatewayState&& value) { SetDirectConnectGatewayState(std::move(value)); return *this;} /** *

The error message if the state of an object failed to advance.

*/ inline const Aws::String& GetStateChangeError() const{ return m_stateChangeError; } /** *

The error message if the state of an object failed to advance.

*/ inline bool StateChangeErrorHasBeenSet() const { return m_stateChangeErrorHasBeenSet; } /** *

The error message if the state of an object failed to advance.

*/ inline void SetStateChangeError(const Aws::String& value) { m_stateChangeErrorHasBeenSet = true; m_stateChangeError = value; } /** *

The error message if the state of an object failed to advance.

*/ inline void SetStateChangeError(Aws::String&& value) { m_stateChangeErrorHasBeenSet = true; m_stateChangeError = std::move(value); } /** *

The error message if the state of an object failed to advance.

*/ inline void SetStateChangeError(const char* value) { m_stateChangeErrorHasBeenSet = true; m_stateChangeError.assign(value); } /** *

The error message if the state of an object failed to advance.

*/ inline DirectConnectGateway& WithStateChangeError(const Aws::String& value) { SetStateChangeError(value); return *this;} /** *

The error message if the state of an object failed to advance.

*/ inline DirectConnectGateway& WithStateChangeError(Aws::String&& value) { SetStateChangeError(std::move(value)); return *this;} /** *

The error message if the state of an object failed to advance.

*/ inline DirectConnectGateway& WithStateChangeError(const char* value) { SetStateChangeError(value); return *this;} private: Aws::String m_directConnectGatewayId; bool m_directConnectGatewayIdHasBeenSet = false; Aws::String m_directConnectGatewayName; bool m_directConnectGatewayNameHasBeenSet = false; long long m_amazonSideAsn; bool m_amazonSideAsnHasBeenSet = false; Aws::String m_ownerAccount; bool m_ownerAccountHasBeenSet = false; DirectConnectGatewayState m_directConnectGatewayState; bool m_directConnectGatewayStateHasBeenSet = false; Aws::String m_stateChangeError; bool m_stateChangeErrorHasBeenSet = false; }; } // namespace Model } // namespace DirectConnect } // namespace Aws