class_docstr: Class for interacting with Vertex CustomJob.
class_docstr_tok: ["Class","for","interacting","with","Vertex","CustomJob","."]
docstr: Launches a long-running job.
  
  Args:
    project: The GCP project under which the training job will be executed.
    training_job: A CustomJob for AI Platform (Unified). See
      https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.customJobs#CustomJob
        the detailed schema.
docstr_tok: ["Launches","a","long-running","job",".","Args",":","project",":","The","GCP","project","under","which","the","training","job","will","be","executed",".","training_job",":","A","CustomJob","for","AI","Platform","(","Unified",")",".","See","https",":","\/\/cloud.google.com\/vertex-ai\/docs\/reference\/rest\/v1\/projects.locations.customJobs","#","CustomJob","the","detailed","schema","."]
code: def launch_job(
      self, project: str, training_job: Dict[str, Any]
  ) -> None:
      """Launches a long-running job.
  
      Args:
        project: The GCP project under which the training job will be executed.
        training_job: A CustomJob for AI Platform (Unified). See
          https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.customJobs#CustomJob
            the detailed schema.
      """
  
      parent = "projects/{project}/locations/{location}".format(
          project=project, location=self._region
      )
  
      logging.info("TrainingJob=%s", training_job)
      logging.info(
          "Submitting custom job='%s', parent='%s' to Vertex AI Training.",
          training_job["display_name"],
          parent,
      )
      response = self._client.create_custom_job(
          parent=parent, custom_job=training_job
      )
      self._job_name = response.name
  
imports: import abc
  import datetime
  import json
  import random
  from typing import Any, Dict, List, Optional, Union
  from absl import logging
  from google.api_core import retry
  from google.cloud.aiplatform import gapic
  from google.cloud.aiplatform_v1.types.custom_job import CustomJob
  from google.cloud.aiplatform_v1.types.job_state import JobState
  from googleapiclient import discovery
  from tfx import types
  from tfx.types import artifact_utils
  from tfx.utils import telemetry_utils
  from tfx.utils import version_utils
label_desc: Use image node_id 4 for calling the VertexJobClient obj's underlying member method code with example usage: obj.launch_job(project, training_job) without return types