from moto.core.responses import ActionResult from ._base_response import EC2BaseResponse class TransitGateways(EC2BaseResponse): def create_transit_gateway(self) -> ActionResult: description = self._get_param("Description") or None options = self._get_multi_param_dict("Options") tags = self._get_multi_param("TagSpecification") if tags: tags = tags[0].get("Tag") transit_gateway = self.ec2_backend.create_transit_gateway( description=description, options=options, tags=tags ) # creating default route table transit_gateway_route_table = ( self.ec2_backend.create_transit_gateway_route_table( transit_gateway_id=transit_gateway.id, tags={}, default_association_route_table=True, default_propagation_route_table=True, ) ) transit_gateway.options["AssociationDefaultRouteTableId"] = ( transit_gateway_route_table.id ) transit_gateway.options["PropagationDefaultRouteTableId"] = ( transit_gateway_route_table.id ) return ActionResult({"TransitGateway": transit_gateway}) def delete_transit_gateway(self) -> ActionResult: transit_gateway_id = self._get_param("TransitGatewayId") transit_gateway = self.ec2_backend.delete_transit_gateway(transit_gateway_id) return ActionResult({"TransitGateway": transit_gateway}) def describe_transit_gateways(self) -> ActionResult: transit_gateway_ids = self._get_multi_param("TransitGatewayIds") filters = self._filters_from_querystring() transit_gateways = self.ec2_backend.describe_transit_gateways( filters, transit_gateway_ids ) return ActionResult({"TransitGateways": transit_gateways}) def modify_transit_gateway(self) -> ActionResult: transit_gateway_id = self._get_param("TransitGatewayId") description = self._get_param("Description") or None options = self._get_multi_param_dict("Options") transit_gateway = self.ec2_backend.modify_transit_gateway( transit_gateway_id=transit_gateway_id, description=description, options=options, ) return ActionResult({"TransitGateway": transit_gateway})
Memory