code: def __init__(
      self,
      *,
      name: str,
      cloud: str,
      worker_type: str,
      worker_cores: int,
      worker_local_ssd_data_disk: bool,
      worker_external_ssd_data_disk_size_gb: int,
      standing_worker_cores: int,
      boot_disk_size_gb: int,
      min_instances: int,
      max_instances: int,
      max_live_instances: int,
      preemptible: bool,
      max_new_instances_per_autoscaler_loop: int,
      autoscaler_loop_period_secs: int,
      worker_max_idle_time_secs: int,
      standing_worker_max_idle_time_secs: int,
      job_queue_scheduling_window_secs: int,
  ):
      assert (
          min_instances <= max_live_instances <= max_instances
      ), f"{(min_instances, max_live_instances, max_instances)}"
      self.name = name
      self.cloud = cloud
      self.worker_type = worker_type
      self.worker_cores = worker_cores
      self.worker_local_ssd_data_disk = worker_local_ssd_data_disk
      self.worker_external_ssd_data_disk_size_gb = (
          worker_external_ssd_data_disk_size_gb
      )
      self.standing_worker_cores = standing_worker_cores
      self.boot_disk_size_gb = boot_disk_size_gb
      self.min_instances = min_instances
      self.max_instances = max_instances
      self.max_live_instances = max_live_instances
      self.preemptible = preemptible
      self.max_new_instances_per_autoscaler_loop = (
          max_new_instances_per_autoscaler_loop
      )
      self.autoscaler_loop_period_secs = autoscaler_loop_period_secs
      self.worker_max_idle_time_secs = worker_max_idle_time_secs
      self.standing_worker_max_idle_time_secs = (
          standing_worker_max_idle_time_secs
      )
      self.job_queue_scheduling_window_secs = (
          job_queue_scheduling_window_secs
      )
  
imports: import asyncio
  import logging
  from typing import Dict, Optional, Tuple
  from gear import Database
  from .cloud.azure.instance_config import AzureSlimInstanceConfig
  from .cloud.azure.resource_utils import azure_worker_properties_to_machine_type
  from .cloud.gcp.instance_config import GCPSlimInstanceConfig
  from .cloud.gcp.resource_utils import GCP_MACHINE_FAMILY, family_worker_type_cores_to_gcp_machine_type
  from .cloud.resource_utils import adjust_cores_for_memory_request, adjust_cores_for_packability, cores_mcpu_to_memory_bytes, local_ssd_size, machine_type_to_worker_type_cores, requested_storage_bytes_to_actual_storage_gib, valid_machine_types
  from .cloud.utils import possible_cloud_locations
  from .driver.billing_manager import ProductVersionInfo, ProductVersions
  from .instance_config import InstanceConfig
label_desc: Use image node_id 2 to create a new PoolConfig object from inherited base classes: InstanceCollectionConfig with example: obj = PoolConfig()