code: def to_quantified_resource(
      self,
      cpu_in_mcpu: int,
      memory_in_bytes: int,
      worker_fraction_in_1024ths: int,
      external_storage_in_gib: int,
  ) -> Optional[QuantifiedResource]:  # pylint: disable=unused-argument
      del cpu_in_mcpu, memory_in_bytes, worker_fraction_in_1024ths
  
      if external_storage_in_gib == 0:
          return None
  
      # Azure bills for specific disk sizes so we must round the storage_in_gib to the nearest power of two
      disk = azure_disk_from_storage_in_gib(
          self.disk_type, external_storage_in_gib
      )
      assert (
          disk
      ), f"disk_type={self.disk_type} storage_in_gib={external_storage_in_gib}"
      resource_name = self.disk_name_to_resource_names[disk.name]
  
      return {
          "name": resource_name,
          "quantity": disk.size_in_gib * 1024,
      }
  
imports: from typing import Any, Dict, Optional
  from ...driver.billing_manager import ProductVersions
  from ...resources import DynamicSizedDiskResourceMixin, IPFeeResourceMixin, QuantifiedResource, Resource, ServiceFeeResourceMixin, StaticSizedDiskResourceMixin, VMResourceMixin
  from .resource_utils import azure_disk_from_storage_in_gib, azure_disks_by_disk_type
label_desc: Use image node_id 5 for calling the AzureDynamicSizedDiskResource obj's underlying member method code with example usage: obj.to_quantified_resource(cpu_in_mcpu, memory_in_bytes, worker_fraction_in_1024ths, external_storage_in_gib) and returns: dict, None