code: def requested_storage_bytes_to_actual_storage_gib(
      cloud: str, storage_bytes: int, allow_zero_storage: bool
  ) -> Optional[int]:
      if cloud == "azure":
          actual_storage_bytes = (
              azure_requested_to_actual_storage_bytes(
                  storage_bytes, allow_zero_storage
              )
          )
      else:
          assert cloud == "gcp"
          actual_storage_bytes = gcp_requested_to_actual_storage_bytes(
              storage_bytes, allow_zero_storage
          )
  
      if actual_storage_bytes is None:
          return None
  
      return round_storage_bytes_to_gib(actual_storage_bytes)
  
imports: import logging
  import math
  from typing import Dict, List, Optional, Tuple
  from ..globals import RESERVED_STORAGE_GB_PER_CORE
  from .azure.resource_utils import azure_is_valid_storage_request, azure_local_ssd_size, azure_machine_type_to_worker_type_and_cores, azure_memory_to_worker_type, azure_requested_to_actual_storage_bytes, azure_valid_cores_from_worker_type, azure_valid_machine_types, azure_worker_memory_per_core_mib
  from .gcp.resource_utils import gcp_cost_from_msec_mcpu, gcp_is_valid_storage_request, gcp_local_ssd_size, gcp_machine_type_to_worker_type_and_cores, gcp_memory_to_worker_type, gcp_requested_to_actual_storage_bytes, gcp_valid_cores_from_worker_type, gcp_valid_machine_types, gcp_worker_memory_per_core_mib
label_desc: Use image node_id 13 for calling a global function with example usage: requested_storage_bytes_to_actual_storage_gib(cloud, storage_bytes, allow_zero_storage) and returns: round_storage_bytes_to_gib, None