code: def create(
      product_versions: ProductVersions,
      machine_type: str,
      preemptible: bool,
      local_ssd_data_disk: bool,
      data_disk_size_gb: int,
      boot_disk_size_gb: int,
      job_private: bool,
      location: str,
  ) -> "GCPSlimInstanceConfig":  # pylint: disable=unused-argument
      region = region_from_location(location)
      data_disk_resource: Union[
          GCPLocalSSDStaticSizedDiskResource, GCPStaticSizedDiskResource
      ]
      if local_ssd_data_disk:
          data_disk_resource = (
              GCPLocalSSDStaticSizedDiskResource.create(
                  product_versions,
                  data_disk_size_gb,
                  preemptible,
                  region,
              )
          )
      else:
          data_disk_resource = GCPStaticSizedDiskResource.create(
              product_versions, "pd-ssd", data_disk_size_gb, region
          )
  
      machine_type_parts = gcp_machine_type_to_parts(machine_type)
      assert machine_type_parts is not None, machine_type
      instance_family = machine_type_parts.machine_family
  
      resources = [
          GCPComputeResource.create(
              product_versions, instance_family, preemptible, region
          ),
          GCPMemoryResource.create(
              product_versions, instance_family, preemptible, region
          ),
          GCPStaticSizedDiskResource.create(
              product_versions, "pd-ssd", boot_disk_size_gb, region
          ),
          data_disk_resource,
          GCPDynamicSizedDiskResource.create(
              product_versions, "pd-ssd", region
          ),
          GCPIPFeeResource.create(product_versions, 1024),
          GCPServiceFeeResource.create(product_versions),
          GCPSupportLogsSpecsAndFirewallFees.create(product_versions),
      ]
  
      accelerator_family = machine_family_to_gpu(
          machine_type_parts.machine_family
      )
      if accelerator_family:
          resources.append(
              GCPAcceleratorResource.create(
                  product_versions,
                  accelerator_family,
                  preemptible,
                  region,
              )
          )
  
      return GCPSlimInstanceConfig(
          machine_type=machine_type,
          preemptible=preemptible,
          local_ssd_data_disk=local_ssd_data_disk,
          data_disk_size_gb=data_disk_size_gb,
          boot_disk_size_gb=boot_disk_size_gb,
          job_private=job_private,
          resources=resources,
      )
  
file_path: hail/batch/batch/cloud/gcp/instance_config.py
imports: from typing import List, Union
  from ...driver.billing_manager import ProductVersions
  from ...instance_config import InstanceConfig
  from .resource_utils import gcp_machine_type_to_parts, machine_family_to_gpu
  from .resources import GCPAcceleratorResource, GCPComputeResource, GCPDynamicSizedDiskResource, GCPIPFeeResource, GCPLocalSSDStaticSizedDiskResource, GCPMemoryResource, GCPResource, GCPServiceFeeResource, GCPStaticSizedDiskResource, GCPSupportLogsSpecsAndFirewallFees, gcp_resource_from_dict
label_desc: Use image node_id 1 for calling the GCPSlimInstanceConfig obj's underlying member method code with example usage: obj.create(product_versions, machine_type, preemptible, local_ssd_data_disk, data_disk_size_gb, boot_disk_size_gb, job_private, location) and returns: GCPSlimInstanceConfig