diff --git a/moto/ec2/models.py b/moto/ec2/models.py index da60d211f..4fae52a2d 100644 --- a/moto/ec2/models.py +++ b/moto/ec2/models.py @@ -4319,6 +4319,7 @@ class Route(CloudFormationModel): gateway=None, instance=None, nat_gateway=None, + transit_gateway=None, interface=None, vpc_pcx=None, ): @@ -4332,6 +4333,7 @@ class Route(CloudFormationModel): self.gateway = gateway self.instance = instance self.nat_gateway = nat_gateway + self.transit_gateway = transit_gateway self.interface = interface self.vpc_pcx = vpc_pcx @@ -4358,6 +4360,7 @@ class Route(CloudFormationModel): instance_id = properties.get("InstanceId") interface_id = properties.get("NetworkInterfaceId") nat_gateway_id = properties.get("NatGatewayId") + transit_gateway_id = properties.get("TransitGatewayId") pcx_id = properties.get("VpcPeeringConnectionId") route_table_id = properties["RouteTableId"] @@ -4368,6 +4371,7 @@ class Route(CloudFormationModel): gateway_id=gateway_id, instance_id=instance_id, nat_gateway_id=nat_gateway_id, + transit_gateway_id=transit_gateway_id, interface_id=interface_id, vpc_peering_connection_id=pcx_id, ) @@ -4596,11 +4600,13 @@ class RouteBackend(object): gateway_id=None, instance_id=None, nat_gateway_id=None, + transit_gateway_id=None, interface_id=None, vpc_peering_connection_id=None, ): gateway = None nat_gateway = None + transit_gateway = None route_table = self.get_route_table(route_table_id) @@ -4623,6 +4629,8 @@ class RouteBackend(object): if nat_gateway_id is not None: nat_gateway = self.nat_gateways.get(nat_gateway_id) + if transit_gateway_id is not None: + transit_gateway = self.transit_gateways.get(transit_gateway_id) route = Route( route_table, @@ -4632,6 +4640,7 @@ class RouteBackend(object): gateway=gateway, instance=self.get_instance(instance_id) if instance_id else None, nat_gateway=nat_gateway, + transit_gateway=transit_gateway, interface=None, vpc_pcx=self.get_vpc_peering_connection(vpc_peering_connection_id) if vpc_peering_connection_id diff --git a/moto/ec2/responses/route_tables.py b/moto/ec2/responses/route_tables.py index 8944e9d34..f9501653d 100644 --- a/moto/ec2/responses/route_tables.py +++ b/moto/ec2/responses/route_tables.py @@ -21,6 +21,7 @@ class RouteTables(BaseResponse): gateway_id = self._get_param("GatewayId") instance_id = self._get_param("InstanceId") nat_gateway_id = self._get_param("NatGatewayId") + transit_gateway_id = self._get_param("TransitGatewayId") interface_id = self._get_param("NetworkInterfaceId") pcx_id = self._get_param("VpcPeeringConnectionId") @@ -31,6 +32,7 @@ class RouteTables(BaseResponse): gateway_id=gateway_id, instance_id=instance_id, nat_gateway_id=nat_gateway_id, + transit_gateway_id=transit_gateway_id, interface_id=interface_id, vpc_peering_connection_id=pcx_id, ) @@ -198,6 +200,10 @@ DESCRIBE_ROUTE_TABLES_RESPONSE = """ {{ route.nat_gateway.id }} active {% endif %} + {% if route.transit_gateway %} + {{ route.transit_gateway.id }} + active + {% endif %} {% endfor %} diff --git a/tests/terraform-tests.success.txt b/tests/terraform-tests.success.txt index c80b861d4..74ee381ec 100644 --- a/tests/terraform-tests.success.txt +++ b/tests/terraform-tests.success.txt @@ -82,6 +82,7 @@ TestAccAWSRouteTable_vgwRoutePropagation TestAccAWSRouteTable_RequireRouteTarget TestAccAWSRouteTable_disappears_SubnetAssociation TestAccAWSRouteTable_IPv4_To_NatGateway +TestAccAWSRouteTable_IPv4_To_TransitGateway TestAccAWSRouteTable_disappears TestAccAWSRouteTable_basic TestAccAwsEc2ManagedPrefixList \ No newline at end of file