docs: def best_training_job(self):
          """Return name of the best training job for the latest hyperparameter tuning job.
  
          Raises:
              Exception: If there is no best training job available for the hyperparameter tuning job.
          """
          self._ensure_last_tuning_job()
  
          tuning_job_describe_result = \
              self.estimator.sagemaker_session.sagemaker_client.describe_hyper_parameter_tuning_job(
                  HyperParameterTuningJobName=self.latest_tuning_job.name)
  
          try:
              return tuning_job_describe_result['BestTrainingJob']['TrainingJobName']
          except KeyError:
              raise Exception('Best training job not available for tuning job: {}'.format(self.latest_tuning_job.name))