/** * 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 #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

The transit gateway options.

See Also:

AWS * API Reference

*/ class ModifyTransitGatewayOptions { public: AWS_EC2_API ModifyTransitGatewayOptions(); AWS_EC2_API ModifyTransitGatewayOptions(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API ModifyTransitGatewayOptions& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 * CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

*/ inline const Aws::Vector& GetAddTransitGatewayCidrBlocks() const{ return m_addTransitGatewayCidrBlocks; } /** *

Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 * CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

*/ inline bool AddTransitGatewayCidrBlocksHasBeenSet() const { return m_addTransitGatewayCidrBlocksHasBeenSet; } /** *

Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 * CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

*/ inline void SetAddTransitGatewayCidrBlocks(const Aws::Vector& value) { m_addTransitGatewayCidrBlocksHasBeenSet = true; m_addTransitGatewayCidrBlocks = value; } /** *

Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 * CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

*/ inline void SetAddTransitGatewayCidrBlocks(Aws::Vector&& value) { m_addTransitGatewayCidrBlocksHasBeenSet = true; m_addTransitGatewayCidrBlocks = std::move(value); } /** *

Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 * CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

*/ inline ModifyTransitGatewayOptions& WithAddTransitGatewayCidrBlocks(const Aws::Vector& value) { SetAddTransitGatewayCidrBlocks(value); return *this;} /** *

Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 * CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

*/ inline ModifyTransitGatewayOptions& WithAddTransitGatewayCidrBlocks(Aws::Vector&& value) { SetAddTransitGatewayCidrBlocks(std::move(value)); return *this;} /** *

Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 * CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

*/ inline ModifyTransitGatewayOptions& AddAddTransitGatewayCidrBlocks(const Aws::String& value) { m_addTransitGatewayCidrBlocksHasBeenSet = true; m_addTransitGatewayCidrBlocks.push_back(value); return *this; } /** *

Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 * CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

*/ inline ModifyTransitGatewayOptions& AddAddTransitGatewayCidrBlocks(Aws::String&& value) { m_addTransitGatewayCidrBlocksHasBeenSet = true; m_addTransitGatewayCidrBlocks.push_back(std::move(value)); return *this; } /** *

Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 * CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.

*/ inline ModifyTransitGatewayOptions& AddAddTransitGatewayCidrBlocks(const char* value) { m_addTransitGatewayCidrBlocksHasBeenSet = true; m_addTransitGatewayCidrBlocks.push_back(value); return *this; } /** *

Removes CIDR blocks for the transit gateway.

*/ inline const Aws::Vector& GetRemoveTransitGatewayCidrBlocks() const{ return m_removeTransitGatewayCidrBlocks; } /** *

Removes CIDR blocks for the transit gateway.

*/ inline bool RemoveTransitGatewayCidrBlocksHasBeenSet() const { return m_removeTransitGatewayCidrBlocksHasBeenSet; } /** *

Removes CIDR blocks for the transit gateway.

*/ inline void SetRemoveTransitGatewayCidrBlocks(const Aws::Vector& value) { m_removeTransitGatewayCidrBlocksHasBeenSet = true; m_removeTransitGatewayCidrBlocks = value; } /** *

Removes CIDR blocks for the transit gateway.

*/ inline void SetRemoveTransitGatewayCidrBlocks(Aws::Vector&& value) { m_removeTransitGatewayCidrBlocksHasBeenSet = true; m_removeTransitGatewayCidrBlocks = std::move(value); } /** *

Removes CIDR blocks for the transit gateway.

*/ inline ModifyTransitGatewayOptions& WithRemoveTransitGatewayCidrBlocks(const Aws::Vector& value) { SetRemoveTransitGatewayCidrBlocks(value); return *this;} /** *

Removes CIDR blocks for the transit gateway.

*/ inline ModifyTransitGatewayOptions& WithRemoveTransitGatewayCidrBlocks(Aws::Vector&& value) { SetRemoveTransitGatewayCidrBlocks(std::move(value)); return *this;} /** *

Removes CIDR blocks for the transit gateway.

*/ inline ModifyTransitGatewayOptions& AddRemoveTransitGatewayCidrBlocks(const Aws::String& value) { m_removeTransitGatewayCidrBlocksHasBeenSet = true; m_removeTransitGatewayCidrBlocks.push_back(value); return *this; } /** *

Removes CIDR blocks for the transit gateway.

*/ inline ModifyTransitGatewayOptions& AddRemoveTransitGatewayCidrBlocks(Aws::String&& value) { m_removeTransitGatewayCidrBlocksHasBeenSet = true; m_removeTransitGatewayCidrBlocks.push_back(std::move(value)); return *this; } /** *

Removes CIDR blocks for the transit gateway.

*/ inline ModifyTransitGatewayOptions& AddRemoveTransitGatewayCidrBlocks(const char* value) { m_removeTransitGatewayCidrBlocksHasBeenSet = true; m_removeTransitGatewayCidrBlocks.push_back(value); return *this; } /** *

Enable or disable Equal Cost Multipath Protocol support.

*/ inline const VpnEcmpSupportValue& GetVpnEcmpSupport() const{ return m_vpnEcmpSupport; } /** *

Enable or disable Equal Cost Multipath Protocol support.

*/ inline bool VpnEcmpSupportHasBeenSet() const { return m_vpnEcmpSupportHasBeenSet; } /** *

Enable or disable Equal Cost Multipath Protocol support.

*/ inline void SetVpnEcmpSupport(const VpnEcmpSupportValue& value) { m_vpnEcmpSupportHasBeenSet = true; m_vpnEcmpSupport = value; } /** *

Enable or disable Equal Cost Multipath Protocol support.

*/ inline void SetVpnEcmpSupport(VpnEcmpSupportValue&& value) { m_vpnEcmpSupportHasBeenSet = true; m_vpnEcmpSupport = std::move(value); } /** *

Enable or disable Equal Cost Multipath Protocol support.

*/ inline ModifyTransitGatewayOptions& WithVpnEcmpSupport(const VpnEcmpSupportValue& value) { SetVpnEcmpSupport(value); return *this;} /** *

Enable or disable Equal Cost Multipath Protocol support.

*/ inline ModifyTransitGatewayOptions& WithVpnEcmpSupport(VpnEcmpSupportValue&& value) { SetVpnEcmpSupport(std::move(value)); return *this;} /** *

Enable or disable DNS support.

*/ inline const DnsSupportValue& GetDnsSupport() const{ return m_dnsSupport; } /** *

Enable or disable DNS support.

*/ inline bool DnsSupportHasBeenSet() const { return m_dnsSupportHasBeenSet; } /** *

Enable or disable DNS support.

*/ inline void SetDnsSupport(const DnsSupportValue& value) { m_dnsSupportHasBeenSet = true; m_dnsSupport = value; } /** *

Enable or disable DNS support.

*/ inline void SetDnsSupport(DnsSupportValue&& value) { m_dnsSupportHasBeenSet = true; m_dnsSupport = std::move(value); } /** *

Enable or disable DNS support.

*/ inline ModifyTransitGatewayOptions& WithDnsSupport(const DnsSupportValue& value) { SetDnsSupport(value); return *this;} /** *

Enable or disable DNS support.

*/ inline ModifyTransitGatewayOptions& WithDnsSupport(DnsSupportValue&& value) { SetDnsSupport(std::move(value)); return *this;} /** *

Enable or disable automatic acceptance of attachment requests.

*/ inline const AutoAcceptSharedAttachmentsValue& GetAutoAcceptSharedAttachments() const{ return m_autoAcceptSharedAttachments; } /** *

Enable or disable automatic acceptance of attachment requests.

*/ inline bool AutoAcceptSharedAttachmentsHasBeenSet() const { return m_autoAcceptSharedAttachmentsHasBeenSet; } /** *

Enable or disable automatic acceptance of attachment requests.

*/ inline void SetAutoAcceptSharedAttachments(const AutoAcceptSharedAttachmentsValue& value) { m_autoAcceptSharedAttachmentsHasBeenSet = true; m_autoAcceptSharedAttachments = value; } /** *

Enable or disable automatic acceptance of attachment requests.

*/ inline void SetAutoAcceptSharedAttachments(AutoAcceptSharedAttachmentsValue&& value) { m_autoAcceptSharedAttachmentsHasBeenSet = true; m_autoAcceptSharedAttachments = std::move(value); } /** *

Enable or disable automatic acceptance of attachment requests.

*/ inline ModifyTransitGatewayOptions& WithAutoAcceptSharedAttachments(const AutoAcceptSharedAttachmentsValue& value) { SetAutoAcceptSharedAttachments(value); return *this;} /** *

Enable or disable automatic acceptance of attachment requests.

*/ inline ModifyTransitGatewayOptions& WithAutoAcceptSharedAttachments(AutoAcceptSharedAttachmentsValue&& value) { SetAutoAcceptSharedAttachments(std::move(value)); return *this;} /** *

Enable or disable automatic association with the default association route * table.

*/ inline const DefaultRouteTableAssociationValue& GetDefaultRouteTableAssociation() const{ return m_defaultRouteTableAssociation; } /** *

Enable or disable automatic association with the default association route * table.

*/ inline bool DefaultRouteTableAssociationHasBeenSet() const { return m_defaultRouteTableAssociationHasBeenSet; } /** *

Enable or disable automatic association with the default association route * table.

*/ inline void SetDefaultRouteTableAssociation(const DefaultRouteTableAssociationValue& value) { m_defaultRouteTableAssociationHasBeenSet = true; m_defaultRouteTableAssociation = value; } /** *

Enable or disable automatic association with the default association route * table.

*/ inline void SetDefaultRouteTableAssociation(DefaultRouteTableAssociationValue&& value) { m_defaultRouteTableAssociationHasBeenSet = true; m_defaultRouteTableAssociation = std::move(value); } /** *

Enable or disable automatic association with the default association route * table.

*/ inline ModifyTransitGatewayOptions& WithDefaultRouteTableAssociation(const DefaultRouteTableAssociationValue& value) { SetDefaultRouteTableAssociation(value); return *this;} /** *

Enable or disable automatic association with the default association route * table.

*/ inline ModifyTransitGatewayOptions& WithDefaultRouteTableAssociation(DefaultRouteTableAssociationValue&& value) { SetDefaultRouteTableAssociation(std::move(value)); return *this;} /** *

The ID of the default association route table.

*/ inline const Aws::String& GetAssociationDefaultRouteTableId() const{ return m_associationDefaultRouteTableId; } /** *

The ID of the default association route table.

*/ inline bool AssociationDefaultRouteTableIdHasBeenSet() const { return m_associationDefaultRouteTableIdHasBeenSet; } /** *

The ID of the default association route table.

*/ inline void SetAssociationDefaultRouteTableId(const Aws::String& value) { m_associationDefaultRouteTableIdHasBeenSet = true; m_associationDefaultRouteTableId = value; } /** *

The ID of the default association route table.

*/ inline void SetAssociationDefaultRouteTableId(Aws::String&& value) { m_associationDefaultRouteTableIdHasBeenSet = true; m_associationDefaultRouteTableId = std::move(value); } /** *

The ID of the default association route table.

*/ inline void SetAssociationDefaultRouteTableId(const char* value) { m_associationDefaultRouteTableIdHasBeenSet = true; m_associationDefaultRouteTableId.assign(value); } /** *

The ID of the default association route table.

*/ inline ModifyTransitGatewayOptions& WithAssociationDefaultRouteTableId(const Aws::String& value) { SetAssociationDefaultRouteTableId(value); return *this;} /** *

The ID of the default association route table.

*/ inline ModifyTransitGatewayOptions& WithAssociationDefaultRouteTableId(Aws::String&& value) { SetAssociationDefaultRouteTableId(std::move(value)); return *this;} /** *

The ID of the default association route table.

*/ inline ModifyTransitGatewayOptions& WithAssociationDefaultRouteTableId(const char* value) { SetAssociationDefaultRouteTableId(value); return *this;} /** *

Enable or disable automatic propagation of routes to the default propagation * route table.

*/ inline const DefaultRouteTablePropagationValue& GetDefaultRouteTablePropagation() const{ return m_defaultRouteTablePropagation; } /** *

Enable or disable automatic propagation of routes to the default propagation * route table.

*/ inline bool DefaultRouteTablePropagationHasBeenSet() const { return m_defaultRouteTablePropagationHasBeenSet; } /** *

Enable or disable automatic propagation of routes to the default propagation * route table.

*/ inline void SetDefaultRouteTablePropagation(const DefaultRouteTablePropagationValue& value) { m_defaultRouteTablePropagationHasBeenSet = true; m_defaultRouteTablePropagation = value; } /** *

Enable or disable automatic propagation of routes to the default propagation * route table.

*/ inline void SetDefaultRouteTablePropagation(DefaultRouteTablePropagationValue&& value) { m_defaultRouteTablePropagationHasBeenSet = true; m_defaultRouteTablePropagation = std::move(value); } /** *

Enable or disable automatic propagation of routes to the default propagation * route table.

*/ inline ModifyTransitGatewayOptions& WithDefaultRouteTablePropagation(const DefaultRouteTablePropagationValue& value) { SetDefaultRouteTablePropagation(value); return *this;} /** *

Enable or disable automatic propagation of routes to the default propagation * route table.

*/ inline ModifyTransitGatewayOptions& WithDefaultRouteTablePropagation(DefaultRouteTablePropagationValue&& value) { SetDefaultRouteTablePropagation(std::move(value)); return *this;} /** *

The ID of the default propagation route table.

*/ inline const Aws::String& GetPropagationDefaultRouteTableId() const{ return m_propagationDefaultRouteTableId; } /** *

The ID of the default propagation route table.

*/ inline bool PropagationDefaultRouteTableIdHasBeenSet() const { return m_propagationDefaultRouteTableIdHasBeenSet; } /** *

The ID of the default propagation route table.

*/ inline void SetPropagationDefaultRouteTableId(const Aws::String& value) { m_propagationDefaultRouteTableIdHasBeenSet = true; m_propagationDefaultRouteTableId = value; } /** *

The ID of the default propagation route table.

*/ inline void SetPropagationDefaultRouteTableId(Aws::String&& value) { m_propagationDefaultRouteTableIdHasBeenSet = true; m_propagationDefaultRouteTableId = std::move(value); } /** *

The ID of the default propagation route table.

*/ inline void SetPropagationDefaultRouteTableId(const char* value) { m_propagationDefaultRouteTableIdHasBeenSet = true; m_propagationDefaultRouteTableId.assign(value); } /** *

The ID of the default propagation route table.

*/ inline ModifyTransitGatewayOptions& WithPropagationDefaultRouteTableId(const Aws::String& value) { SetPropagationDefaultRouteTableId(value); return *this;} /** *

The ID of the default propagation route table.

*/ inline ModifyTransitGatewayOptions& WithPropagationDefaultRouteTableId(Aws::String&& value) { SetPropagationDefaultRouteTableId(std::move(value)); return *this;} /** *

The ID of the default propagation route table.

*/ inline ModifyTransitGatewayOptions& WithPropagationDefaultRouteTableId(const char* value) { SetPropagationDefaultRouteTableId(value); return *this;} /** *

A private Autonomous System Number (ASN) for the Amazon side of a BGP * session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to * 4294967294 for 32-bit ASNs.

The modify ASN operation is not allowed on a * transit gateway with active BGP sessions. You must first delete all transit * gateway attachments that have BGP configured prior to modifying the ASN on the * transit gateway.

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

A private Autonomous System Number (ASN) for the Amazon side of a BGP * session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to * 4294967294 for 32-bit ASNs.

The modify ASN operation is not allowed on a * transit gateway with active BGP sessions. You must first delete all transit * gateway attachments that have BGP configured prior to modifying the ASN on the * transit gateway.

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

A private Autonomous System Number (ASN) for the Amazon side of a BGP * session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to * 4294967294 for 32-bit ASNs.

The modify ASN operation is not allowed on a * transit gateway with active BGP sessions. You must first delete all transit * gateway attachments that have BGP configured prior to modifying the ASN on the * transit gateway.

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

A private Autonomous System Number (ASN) for the Amazon side of a BGP * session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to * 4294967294 for 32-bit ASNs.

The modify ASN operation is not allowed on a * transit gateway with active BGP sessions. You must first delete all transit * gateway attachments that have BGP configured prior to modifying the ASN on the * transit gateway.

*/ inline ModifyTransitGatewayOptions& WithAmazonSideAsn(long long value) { SetAmazonSideAsn(value); return *this;} private: Aws::Vector m_addTransitGatewayCidrBlocks; bool m_addTransitGatewayCidrBlocksHasBeenSet = false; Aws::Vector m_removeTransitGatewayCidrBlocks; bool m_removeTransitGatewayCidrBlocksHasBeenSet = false; VpnEcmpSupportValue m_vpnEcmpSupport; bool m_vpnEcmpSupportHasBeenSet = false; DnsSupportValue m_dnsSupport; bool m_dnsSupportHasBeenSet = false; AutoAcceptSharedAttachmentsValue m_autoAcceptSharedAttachments; bool m_autoAcceptSharedAttachmentsHasBeenSet = false; DefaultRouteTableAssociationValue m_defaultRouteTableAssociation; bool m_defaultRouteTableAssociationHasBeenSet = false; Aws::String m_associationDefaultRouteTableId; bool m_associationDefaultRouteTableIdHasBeenSet = false; DefaultRouteTablePropagationValue m_defaultRouteTablePropagation; bool m_defaultRouteTablePropagationHasBeenSet = false; Aws::String m_propagationDefaultRouteTableId; bool m_propagationDefaultRouteTableIdHasBeenSet = false; long long m_amazonSideAsn; bool m_amazonSideAsnHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws