  def ListImages(
      self,
      qfilter: Optional[List[Dict[str, Any]]] = None) -> List[Dict[str, Any]]:
    """List AMI images.

    Args:
      qfilter (List[Dict]): The filter expression.
      See https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_images  # pylint: disable=line-too-long

    Returns:
      List[Dict[str, Any]]: The list of images with their properties.

    Raises:
      RuntimeError: If the images could not be listed.
    """
    if not qfilter:
      qfilter = []

    client = self.aws_account.ClientApi(common.EC2_SERVICE)
    try:
      images = client.describe_images(
          Filters=qfilter)  # type: Dict[str, List[Dict[str, Any]]]
    except client.exceptions.ClientError as exception:
      raise RuntimeError(str(exception)) from exception

    return images['Images']
List AMI images.

Args:
qfilter (List[Dict]): The filter expression.
See https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_images  # pylint: disable=line-too-long

Returns:
List[Dict[str, Any]]: The list of images with their properties.

Raises:
RuntimeError: If the images could not be listed.
libcloudforensics/providers/aws/internal/ec2.py