def ExecuteRequest(
    client: Any,
    func: str,
    kwargs: Optional[Dict[str, str]] = None) -> List[Any]:
  """Execute a request to the Azure API.

  Args:
    client (Any): An Azure operation client object.
    func (str): An Azure function to query from the client.
    kwargs (Dict): Optional. A dictionary of parameters for the function func.

  Returns:
    List[Any]: A List of Azure response objects (VirtualMachines, Disks, etc).

  Raises:
    RuntimeError: If the request to the Azure API could not complete.
  """

  if not kwargs:
    kwargs = {}

  responses = []
  next_link = ''
  while True:
    if next_link:
      kwargs['next_link'] = next_link
    request = getattr(client, func)
    response = request(**kwargs)
    responses.append(response)
    next_link = response.next_link if hasattr(response, 'next_link') else ''
    if not next_link:
      return responses
Execute a request to the Azure API.

Args:
client (Any): An Azure operation client object.
func (str): An Azure function to query from the client.
kwargs (Dict): Optional. A dictionary of parameters for the function func.

Returns:
List[Any]: A List of Azure response objects (VirtualMachines, Disks, etc).

Raises:
RuntimeError: If the request to the Azure API could not complete.
libcloudforensics/providers/azure/internal/common.py