class_docstr: Class for interacting with CAIP CMLE job.
class_docstr_tok: ["Class","for","interacting","with","CAIP","CMLE","job","."]
docstr: Launches a long-running job.
  
  Args:
    project: The GCP project under which the training job will be executed.
    training_job: A Cloud AI Platform training job. See
      https://cloud.google.com/ml-engine/reference/rest/v1/projects.jobs for
        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","Cloud","AI","Platform","training","job",".","See","https",":","\/\/cloud.google.com\/ml-engine\/reference\/rest\/v1\/projects.jobs","for","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 Cloud AI Platform training job. See
          https://cloud.google.com/ml-engine/reference/rest/v1/projects.jobs for
            the detailed schema.
      """
  
      parent = "projects/{}".format(project)
  
      # Submit job to AIP Training
      logging.info("TrainingJob=%s", training_job)
      logging.info(
          "Submitting job='%s', project='%s' to AI Platform.",
          training_job["job_id"],
          parent,
      )
      request = (
          self._client.projects()
          .jobs()
          .create(body=training_job, parent=parent)
      )
      self._job_name = "{}/jobs/{}".format(
          parent, training_job["job_id"]
      )
      request.execute()
  
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 3 for calling the CAIPJobClient obj's underlying member method code with example usage: obj.launch_job(project, training_job) without return types