/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace DirectConnect { namespace Model { /** */ class CreateDirectConnectGatewayAssociationRequest : public DirectConnectRequest { public: AWS_DIRECTCONNECT_API CreateDirectConnectGatewayAssociationRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateDirectConnectGatewayAssociation"; } AWS_DIRECTCONNECT_API Aws::String SerializePayload() const override; AWS_DIRECTCONNECT_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

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 CreateDirectConnectGatewayAssociationRequest& WithDirectConnectGatewayId(const Aws::String& value) { SetDirectConnectGatewayId(value); return *this;} /** *

The ID of the Direct Connect gateway.

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

The ID of the Direct Connect gateway.

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

The ID of the virtual private gateway or transit gateway.

*/ inline const Aws::String& GetGatewayId() const{ return m_gatewayId; } /** *

The ID of the virtual private gateway or transit gateway.

*/ inline bool GatewayIdHasBeenSet() const { return m_gatewayIdHasBeenSet; } /** *

The ID of the virtual private gateway or transit gateway.

*/ inline void SetGatewayId(const Aws::String& value) { m_gatewayIdHasBeenSet = true; m_gatewayId = value; } /** *

The ID of the virtual private gateway or transit gateway.

*/ inline void SetGatewayId(Aws::String&& value) { m_gatewayIdHasBeenSet = true; m_gatewayId = std::move(value); } /** *

The ID of the virtual private gateway or transit gateway.

*/ inline void SetGatewayId(const char* value) { m_gatewayIdHasBeenSet = true; m_gatewayId.assign(value); } /** *

The ID of the virtual private gateway or transit gateway.

*/ inline CreateDirectConnectGatewayAssociationRequest& WithGatewayId(const Aws::String& value) { SetGatewayId(value); return *this;} /** *

The ID of the virtual private gateway or transit gateway.

*/ inline CreateDirectConnectGatewayAssociationRequest& WithGatewayId(Aws::String&& value) { SetGatewayId(std::move(value)); return *this;} /** *

The ID of the virtual private gateway or transit gateway.

*/ inline CreateDirectConnectGatewayAssociationRequest& WithGatewayId(const char* value) { SetGatewayId(value); return *this;} /** *

The Amazon VPC prefixes to advertise to the Direct Connect gateway

*

This parameter is required when you create an association to a transit * gateway.

For information about how to set the prefixes, see Allowed * Prefixes in the Direct Connect User Guide.

*/ inline const Aws::Vector& GetAddAllowedPrefixesToDirectConnectGateway() const{ return m_addAllowedPrefixesToDirectConnectGateway; } /** *

The Amazon VPC prefixes to advertise to the Direct Connect gateway

*

This parameter is required when you create an association to a transit * gateway.

For information about how to set the prefixes, see Allowed * Prefixes in the Direct Connect User Guide.

*/ inline bool AddAllowedPrefixesToDirectConnectGatewayHasBeenSet() const { return m_addAllowedPrefixesToDirectConnectGatewayHasBeenSet; } /** *

The Amazon VPC prefixes to advertise to the Direct Connect gateway

*

This parameter is required when you create an association to a transit * gateway.

For information about how to set the prefixes, see Allowed * Prefixes in the Direct Connect User Guide.

*/ inline void SetAddAllowedPrefixesToDirectConnectGateway(const Aws::Vector& value) { m_addAllowedPrefixesToDirectConnectGatewayHasBeenSet = true; m_addAllowedPrefixesToDirectConnectGateway = value; } /** *

The Amazon VPC prefixes to advertise to the Direct Connect gateway

*

This parameter is required when you create an association to a transit * gateway.

For information about how to set the prefixes, see Allowed * Prefixes in the Direct Connect User Guide.

*/ inline void SetAddAllowedPrefixesToDirectConnectGateway(Aws::Vector&& value) { m_addAllowedPrefixesToDirectConnectGatewayHasBeenSet = true; m_addAllowedPrefixesToDirectConnectGateway = std::move(value); } /** *

The Amazon VPC prefixes to advertise to the Direct Connect gateway

*

This parameter is required when you create an association to a transit * gateway.

For information about how to set the prefixes, see Allowed * Prefixes in the Direct Connect User Guide.

*/ inline CreateDirectConnectGatewayAssociationRequest& WithAddAllowedPrefixesToDirectConnectGateway(const Aws::Vector& value) { SetAddAllowedPrefixesToDirectConnectGateway(value); return *this;} /** *

The Amazon VPC prefixes to advertise to the Direct Connect gateway

*

This parameter is required when you create an association to a transit * gateway.

For information about how to set the prefixes, see Allowed * Prefixes in the Direct Connect User Guide.

*/ inline CreateDirectConnectGatewayAssociationRequest& WithAddAllowedPrefixesToDirectConnectGateway(Aws::Vector&& value) { SetAddAllowedPrefixesToDirectConnectGateway(std::move(value)); return *this;} /** *

The Amazon VPC prefixes to advertise to the Direct Connect gateway

*

This parameter is required when you create an association to a transit * gateway.

For information about how to set the prefixes, see Allowed * Prefixes in the Direct Connect User Guide.

*/ inline CreateDirectConnectGatewayAssociationRequest& AddAddAllowedPrefixesToDirectConnectGateway(const RouteFilterPrefix& value) { m_addAllowedPrefixesToDirectConnectGatewayHasBeenSet = true; m_addAllowedPrefixesToDirectConnectGateway.push_back(value); return *this; } /** *

The Amazon VPC prefixes to advertise to the Direct Connect gateway

*

This parameter is required when you create an association to a transit * gateway.

For information about how to set the prefixes, see Allowed * Prefixes in the Direct Connect User Guide.

*/ inline CreateDirectConnectGatewayAssociationRequest& AddAddAllowedPrefixesToDirectConnectGateway(RouteFilterPrefix&& value) { m_addAllowedPrefixesToDirectConnectGatewayHasBeenSet = true; m_addAllowedPrefixesToDirectConnectGateway.push_back(std::move(value)); return *this; } /** *

The ID of the virtual private gateway.

*/ inline const Aws::String& GetVirtualGatewayId() const{ return m_virtualGatewayId; } /** *

The ID of the virtual private gateway.

*/ inline bool VirtualGatewayIdHasBeenSet() const { return m_virtualGatewayIdHasBeenSet; } /** *

The ID of the virtual private gateway.

*/ inline void SetVirtualGatewayId(const Aws::String& value) { m_virtualGatewayIdHasBeenSet = true; m_virtualGatewayId = value; } /** *

The ID of the virtual private gateway.

*/ inline void SetVirtualGatewayId(Aws::String&& value) { m_virtualGatewayIdHasBeenSet = true; m_virtualGatewayId = std::move(value); } /** *

The ID of the virtual private gateway.

*/ inline void SetVirtualGatewayId(const char* value) { m_virtualGatewayIdHasBeenSet = true; m_virtualGatewayId.assign(value); } /** *

The ID of the virtual private gateway.

*/ inline CreateDirectConnectGatewayAssociationRequest& WithVirtualGatewayId(const Aws::String& value) { SetVirtualGatewayId(value); return *this;} /** *

The ID of the virtual private gateway.

*/ inline CreateDirectConnectGatewayAssociationRequest& WithVirtualGatewayId(Aws::String&& value) { SetVirtualGatewayId(std::move(value)); return *this;} /** *

The ID of the virtual private gateway.

*/ inline CreateDirectConnectGatewayAssociationRequest& WithVirtualGatewayId(const char* value) { SetVirtualGatewayId(value); return *this;} private: Aws::String m_directConnectGatewayId; bool m_directConnectGatewayIdHasBeenSet = false; Aws::String m_gatewayId; bool m_gatewayIdHasBeenSet = false; Aws::Vector m_addAllowedPrefixesToDirectConnectGateway; bool m_addAllowedPrefixesToDirectConnectGatewayHasBeenSet = false; Aws::String m_virtualGatewayId; bool m_virtualGatewayIdHasBeenSet = false; }; } // namespace Model } // namespace DirectConnect } // namespace Aws