code: def __init__(self, config: GCPConfig):
      self.config = config
      self.credentials, self.project_id = auth.authenticate(
          config.creds
      )
      self.instances_client = compute_v1.InstancesClient(
          credentials=self.credentials
      )
      self.firewalls_client = compute_v1.FirewallsClient(
          credentials=self.credentials
      )
      self.regions_client = compute_v1.RegionsClient(
          credentials=self.credentials
      )
  
imports: from collections import defaultdict
  from typing import Callable, Dict, List, Optional, Tuple
  import google.api_core.exceptions
  import google.cloud.compute_v1
  import dstack._internal.core.backends.gcp.auth
  import dstack._internal.core.backends.gcp.resources
  from dstack._internal.core.backends.base.compute import Compute, get_gateway_user_data, get_instance_name, get_user_data
  from dstack._internal.core.backends.base.offers import get_catalog_offers
  from dstack._internal.core.backends.gcp.config import GCPConfig
  from dstack._internal.core.errors import NoCapacityError, ResourceNotFoundError
  from dstack._internal.core.models.backends.base import BackendType
  from dstack._internal.core.models.instances import InstanceAvailability, InstanceOffer, InstanceOfferWithAvailability, InstanceType, LaunchedGatewayInfo, LaunchedInstanceInfo, Resources
  from dstack._internal.core.models.runs import Job, Requirements, Run
label_desc: Use image node_id 1 to create a new GCPCompute object from inherited base classes: Compute with example: obj = GCPCompute(config)