async def METHOD_NAME(
    self,
    file_store: FileStore,
    machine_name: str,
    activation_token: str,
    max_idle_time_msecs: int,
    local_ssd_data_disk: bool,
    data_disk_size_gb: int,
    boot_disk_size_gb: int,
    preemptible: bool,
    job_private: bool,
    location: str,
    machine_type: str,
    instance_config: InstanceConfig,
) -> List[QuantifiedResource]:
    if local_ssd_data_disk:
        assert data_disk_size_gb == 375
    resource_rates = self.billing_manager.resource_rates
    worker_type, cores = self.worker_type_and_cores(machine_type)
    vm_config = create_vm_config(
        file_store,
        resource_rates,
        location,
        machine_name,
        machine_type,
        activation_token,
        max_idle_time_msecs,
        local_ssd_data_disk,
        data_disk_size_gb,
        boot_disk_size_gb,
        preemptible,
        job_private,
        self.project,
        instance_config,
    )
    memory_mib = gcp_worker_memory_per_core_mib(worker_type) * cores
    memory_in_bytes = memory_mib << 20
    cores_mcpu = cores * 1000
    total_resources_on_instance = instance_config.quantified_resources(
        cpu_in_mcpu=cores_mcpu, memory_in_bytes=memory_in_bytes, extra_storage_in_gib=0
    )
    try:
        params = {'requestId': str(uuid.uuid4())}
        await self.compute_client.post(f'/zones/{location}/instances', params=params, json=vm_config)
        log.info(f'created machine {machine_name}')
    except Exception:
        log.exception(f'error while creating machine {machine_name}')
    return total_resources_on_instance