@darshan-majithiya had opened #15429 to add the hyperparameter tuning PR but it's gone stale. I'm adding this issue to see if they want to pick it back up, or if not, if someone wants to pick up where they left off in the spirit of open source 😄 
airflow/providers/google/cloud/operators/mlengine.py
if self._training_python_module:
            training_request['trainingInput']['pythonModule'] = self._training_python_module
        if self._training_args:
            training_request['trainingInput']['args'] = self._training_args
        if self._master_type:
            training_request['trainingInput']['masterType'] = self._master_type
        if self._master_config:
            training_request['trainingInput']['masterConfig'] = self._master_config
        if self._runtime_version:
            training_request['trainingInput']['runtimeVersion'] = self._runtime_version
        if self._python_version:
            training_request['trainingInput']['pythonVersion'] = self._python_version
        if self._job_dir:
            training_request['trainingInput']['jobDir'] = self._job_dir
        if self._service_account:
            training_request['trainingInput']['serviceAccount'] = self._service_account
        if self._labels:
            training_request['labels'] = self._labels
        if self._mode == 'DRY_RUN':
            self.log.info('In dry_run mode.')
            self.log.info('MLEngine Training job request is: %s', training_request)
            return
        hook = MLEngineHook(
            gcp_conn_id=self._gcp_conn_id,
            delegate_to=self._delegate_to,
            impersonation_chain=self._impersonation_chain,
        )
        
        
        def check_existing_job(existing_job):