code: def get_config_values(
      self, config: GCPConfigInfoWithCredsPartial
  ) -> GCPConfigValues:
      config_values = GCPConfigValues(project_id=None, regions=None)
      config_values.default_creds = (
          settings.DEFAULT_CREDS_ENABLED
          and auth.default_creds_available()
      )
      if config.creds is None:
          return config_values
      if (
          isinstance(config.creds, GCPDefaultCreds)
          and not settings.DEFAULT_CREDS_ENABLED
      ):
          raise_invalid_credentials_error(fields=[["creds"]])
      try:
          _, project_id = auth.authenticate(creds=config.creds)
      except BackendAuthError:
          if isinstance(config.creds, GCPServiceAccountCreds):
              raise_invalid_credentials_error(
                  fields=[["creds", "data"]]
              )
          else:
              raise_invalid_credentials_error(fields=[["creds"]])
      if (
          project_id is not None
          and config.project_id is not None
          and config.project_id != project_id
      ):
          raise ServerClientError(
              msg="Wrong project_id", fields=[["project_id"]]
          )
      config_values.project_id = self._get_project_id_element(
          selected=project_id
      )
      if config.project_id is None:
          return config_values
      config_values.regions = self._get_regions_element(
          selected=config.regions or DEFAULT_REGIONS
      )
      return config_values
  
imports: import json
  from typing import Dict, List
  import googleapiclient.discovery
  import googleapiclient.errors
  from google.auth.credentials import Credentials
  from dstack._internal.core.backends.gcp import GCPBackend, auth
  from dstack._internal.core.backends.gcp import utils
  from dstack._internal.core.backends.gcp.config import GCPConfig
  from dstack._internal.core.errors import BackendAuthError, ServerClientError
  from dstack._internal.core.models.backends.base import BackendType, ConfigElement, ConfigElementValue, ConfigMultiElement
  from dstack._internal.core.models.backends.gcp import AnyGCPConfigInfo, GCPConfigInfo, GCPConfigInfoWithCreds, GCPConfigInfoWithCredsPartial, GCPConfigValues, GCPCreds, GCPDefaultCreds, GCPServiceAccountCreds, GCPStoredConfig
  from dstack._internal.server import settings
  from dstack._internal.server.models import BackendModel, ProjectModel
  from dstack._internal.server.services.backends.configurators.base import Configurator, raise_invalid_credentials_error
label_desc: Use image node_id 2 for calling the GCPConfigurator obj's underlying member method code with example usage: obj.get_config_values(config) and returns: config_values, config_values, config_values