  def ListDiskByLabels(
      self, labels_filter: Dict[str, str],
      filter_union: bool = True) -> Dict[str, 'GoogleComputeDisk']:
    """List Disks in a project with one/all of the provided labels.

    This will call the _ListByLabel function on a disks() API object
    with the proper labels filter and return a Dict with name and metadata
    for each disk, e.g.:
        {'disk-1': {'zone': 'us-central1-a', 'labels': {'id': '123'}}

    Args:
      labels_filter (Dict[str, str]): A Dict of labels to find e.g.
          {'id': '123'}.
      filter_union (bool): Optional. A Boolean; True to get the union of all
          filters, False to get the intersection.

    Returns:
      Dict[str, GoogleComputeDisk]: Dictionary mapping disks to their
          respective GoogleComputeDisk object.
    """

    disk_service_object = self.GceApi().disks() # pylint: disable=no-member
    return self._ListByLabel(labels_filter, disk_service_object, filter_union)
List Disks in a project with one/all of the provided labels.

This will call the _ListByLabel function on a disks() API object
with the proper labels filter and return a Dict with name and metadata
for each disk, e.g.:
{'disk-1': {'zone': 'us-central1-a', 'labels': {'id': '123'}}

Args:
labels_filter (Dict[str, str]): A Dict of labels to find e.g.
{'id': '123'}.
filter_union (bool): Optional. A Boolean; True to get the union of all
filters, False to get the intersection.

Returns:
Dict[str, GoogleComputeDisk]: Dictionary mapping disks to their
respective GoogleComputeDisk object.
libcloudforensics/providers/gcp/internal/compute.py