  def ListDisks(
      self,
      resource_group_name: Optional[str] = None) -> Dict[str, 'AZComputeDisk']:
    """List disks in an Azure subscription / resource group.

    Args:
      resource_group_name (str): Optional. The resource group name to list
          disks from. If none specified, then all disks in the AZ
          subscription will be listed.

    Returns:
      Dict[str, AZComputeDisk]: Dictionary mapping disk names (str) to their
          respective AZComputeDisk object.
    """
    disks = {}  # type: Dict[str, AZComputeDisk]
    az_disk_client = self.compute_client.disks
    if not resource_group_name:
      responses = common.ExecuteRequest(az_disk_client, 'list')
    else:
      responses = common.ExecuteRequest(
          az_disk_client,
          'list_by_resource_group',
          {'resource_group_name': resource_group_name})
    for response in responses:
      for disk in response:
        disks[disk.name] = AZComputeDisk(self.az_account,
                                         disk.id,
                                         disk.name,
                                         disk.location,
                                         zones=disk.zones)
    return disks
List disks in an Azure subscription / resource group.

Args:
resource_group_name (str): Optional. The resource group name to list
disks from. If none specified, then all disks in the AZ
subscription will be listed.

Returns:
Dict[str, AZComputeDisk]: Dictionary mapping disk names (str) to their
respective AZComputeDisk object.
libcloudforensics/providers/azure/internal/compute.py