class_docstr: Interact with Amazon SageMaker.
  
  Provide thick wrapper around
  :external+boto3:py:class:`boto3.client("sagemaker") <SageMaker.Client>`.
  
  Additional arguments (such as ``aws_conn_id``) may be specified and
  are passed down to the underlying AwsBaseHook.
  
  .. seealso::
      - :class:`airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`
class_docstr_tok: ["Interact","with","Amazon","SageMaker",".","Provide","thick","wrapper","around",":","external+boto3",":","py",":","class",":","`","boto3.client","(","``","sagemaker","''",")","<","SageMaker.Client",">","`",".","Additional","arguments","(","such","as","``","aws_conn_id","``",")","may","be","specified","and","are","passed","down","to","the","underlying","AwsBaseHook",".","..","seealso",":",":","-",":","class",":","`","airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook","`"]
docstr: Start a hyperparameter tuning job.
  
  A hyperparameter tuning job finds the best version of a model by running
  many training jobs on your dataset using the algorithm you choose and
  values for hyperparameters within ranges that you specify. It then
  chooses the hyperparameter values that result in a model that performs
  the best, as measured by an objective metric that you choose.
  
  :param config: the config for tuning
  :param wait_for_completion: if the program should keep running until job finishes
  :param check_interval: the time interval in seconds which the operator
      will check the status of any SageMaker job
  :param max_ingestion_time: the maximum ingestion time in seconds. Any
      SageMaker jobs that run longer than this will fail. Setting this to
      None implies no timeout for any SageMaker job.
  :return: A response to tuning job creation
code: def create_tuning_job(
      self,
      config: dict,
      wait_for_completion: bool = True,
      check_interval: int = 30,
      max_ingestion_time: int | None = None,
  ):
      """Start a hyperparameter tuning job.
  
      A hyperparameter tuning job finds the best version of a model by running
      many training jobs on your dataset using the algorithm you choose and
      values for hyperparameters within ranges that you specify. It then
      chooses the hyperparameter values that result in a model that performs
      the best, as measured by an objective metric that you choose.
  
      :param config: the config for tuning
      :param wait_for_completion: if the program should keep running until job finishes
      :param check_interval: the time interval in seconds which the operator
          will check the status of any SageMaker job
      :param max_ingestion_time: the maximum ingestion time in seconds. Any
          SageMaker jobs that run longer than this will fail. Setting this to
          None implies no timeout for any SageMaker job.
      :return: A response to tuning job creation
      """
      self.check_tuning_config(config)
  
      response = self.get_conn().create_hyper_parameter_tuning_job(
          **config
      )
      if wait_for_completion:
          self.check_status(
              config["HyperParameterTuningJobName"],
              "HyperParameterTuningJobStatus",
              self.describe_tuning_job,
              check_interval,
              max_ingestion_time,
          )
      return response
  
imports: from __future__ import annotations
  import os
  import re
  import tarfile
  import tempfile
  import time
  import warnings
  from collections import Counter, namedtuple
  from datetime import datetime
  from functools import partial
  from typing import Any, Callable, Generator, cast
  from botocore.exceptions import ClientError
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
  from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
  from airflow.providers.amazon.aws.hooks.logs import AwsLogsHook
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
  from airflow.providers.amazon.aws.utils.tags import format_tags
  from airflow.utils import timezone
label_desc: Use image node_id 9 for calling the SageMakerHook obj's underlying member method code with example usage: obj.create_tuning_job(config, wait_for_completion, check_interval, max_ingestion_time) and returns: response