code: def __init__(
      self,
      machine_type: str,
      preemptible: bool,
      local_ssd_data_disk: bool,
      data_disk_size_gb: int,
      boot_disk_size_gb: int,
      job_private: bool,
      resources: List[GCPResource],
  ):
      self.cloud = "gcp"
      self._machine_type = machine_type
      self.preemptible = preemptible
      self.local_ssd_data_disk = local_ssd_data_disk
      self.data_disk_size_gb = data_disk_size_gb
      self.job_private = job_private
      self.boot_disk_size_gb = boot_disk_size_gb
  
      machine_type_parts = gcp_machine_type_to_parts(self._machine_type)
      assert machine_type_parts is not None, machine_type
      self._instance_family = machine_type_parts.machine_family
      self._worker_type = machine_type_parts.worker_type
      self.cores = machine_type_parts.cores
      self.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 2 to create a new GCPSlimInstanceConfig object from inherited base classes: InstanceConfig with example: obj = GCPSlimInstanceConfig(machine_type, preemptible, local_ssd_data_disk, data_disk_size_gb, boot_disk_size_gb, job_private, resources)