code: def create_gateway(
      self,
      instance_name: str,
      ssh_key_pub: str,
      region: str,
      project_id: str,
  ) -> LaunchedGatewayInfo:
      raise NotImplementedError()
  
imports: import os
  import re
  from abc import ABC, abstractmethod
  from typing import List, Optional
  import git
  import requests
  import yaml
  from dstack import version
  from dstack._internal import settings
  from dstack._internal.core.models.backends.base import BackendType
  from dstack._internal.core.models.instances import InstanceOfferWithAvailability, InstanceState, LaunchedGatewayInfo, LaunchedInstanceInfo
  from dstack._internal.core.models.runs import Job, Requirements, Run
  from dstack._internal.utils.logging import get_logger
label_desc: Use image node_id 5 for calling the Compute obj's underlying member method code with example usage: obj.create_gateway(instance_name, ssh_key_pub, region, project_id) without return types