def METHOD_NAME(
    self, internet_gateway_ids: Optional[List[str]] = None, filters: Any = None
) -> List[InternetGateway]:
    igws = []
    if internet_gateway_ids is None:
        igws = list(self.internet_gateways.values())
    else:
        for igw_id in internet_gateway_ids:
            if igw_id in self.internet_gateways:
                igws.append(self.internet_gateways[igw_id])
            else:
                raise InvalidInternetGatewayIdError(igw_id)
    if filters is not None:
        igws = filter_internet_gateways(igws, filters)
    return igws