code: def product_name(
      machine_type: str, preemptible: bool, location: str
  ) -> str:
      preemptible_str = "spot" if preemptible else "regular"
      return f"az/vm/{machine_type}/{preemptible_str}/{location}"
  
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 1 for calling the AzureVMResource obj's underlying member method code with example usage: obj.product_name(machine_type, preemptible, location) and returns: str, machine_type, str, preemptible_str, str, location