code: def get_config_values(
      self, config: TensorDockConfigInfoWithCredsPartial
  ) -> TensorDockConfigValues:
      config_values = TensorDockConfigValues()
      if config.creds is None:
          return config_values
      self._validate_tensordock_creds(
          config.creds.api_key, config.creds.api_token
      )
      config_values.regions = self._get_regions_element(
          selected=config.regions or []
      )
      return config_values
  
file_path: dstack/src/dstack/_internal/server/services/backends/configurators/tensordock.py
imports: import json
  from typing import List
  from dstack._internal.core.backends.tensordock import TensorDockBackend, api_client
  from dstack._internal.core.backends.tensordock.config import TensorDockConfig
  from dstack._internal.core.models.backends.base import BackendType, ConfigElementValue, ConfigMultiElement
  from dstack._internal.core.models.backends.tensordock import AnyTensorDockConfigInfo, TensorDockConfigInfo, TensorDockConfigInfoWithCreds, TensorDockConfigInfoWithCredsPartial, TensorDockConfigValues, TensorDockCreds, TensorDockStoredConfig
  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 TensorDockConfigurator obj's underlying member method code with example usage: obj.get_config_values(config) and returns: config_values, config_values