class_docstr: A wrapper class that allows for easy interaction with a Study.
docstr: Marks the trial as COMPLETED and sets the final measurement.
  
  Args:
      trial_id: trial_id.
      trial_infeasible: If True, the parameter setting is not feasible.
      infeasibility_reason: The reason the Trial was infeasible. Should
          only be non-empty if trial_infeasible==True.
  
  Returns:
      The Completed Vizier trial, represented as a JSON Dictionary.
docstr_tok: ["Marks","the","trial","as","COMPLETED","and","sets","the","final","measurement",".","Args",":","trial_id",":","trial_id",".","trial_infeasible",":","If","True",",","the","parameter","setting","is","not","feasible",".","infeasibility_reason",":","The","reason","the","Trial","was","infeasible",".","Should","only","be","non-empty","if","trial_infeasible==True",".","Returns",":","The","Completed","Vizier","trial",",","represented","as","a","JSON","Dictionary","."]
code: def complete_trial(
      self,
      trial_id: Text,
      trial_infeasible: bool,
      infeasibility_reason: Optional[Text] = None,
  ) -> Dict[Text, Any]:
      """Marks the trial as COMPLETED and sets the final measurement.
  
      Args:
          trial_id: trial_id.
          trial_infeasible: If True, the parameter setting is not feasible.
          infeasibility_reason: The reason the Trial was infeasible. Should
              only be non-empty if trial_infeasible==True.
  
      Returns:
          The Completed Vizier trial, represented as a JSON Dictionary.
      """
      try:
          vizier_trial = (
              self.service_client.projects()
              .locations()
              .studies()
              .trials()
              .complete(
                  name=self._make_trial_name(trial_id),
                  body={
                      "trial_infeasible": trial_infeasible,
                      "infeasible_reason": infeasibility_reason,
                  },
              )
              .execute()
          )
      except errors.HttpError as e:
          tf.get_logger().info("CompleteTrial failed.")
          raise e
      return vizier_trial
  
imports: import datetime
  import http
  import json
  import time
  from typing import Any, Dict, List, Mapping, Optional, Text, Union
  from googleapiclient import discovery
  from googleapiclient import errors
  import tensorflow
  from tensorflow_cloud.tuner import vizier_client_interface
  from tensorflow_cloud.tuner import constants
  from tensorflow_cloud.utils import google_api_client
label_desc: Use image node_id 5 for calling the _VizierClient obj's underlying member method code with example usage: obj.complete_trial(trial_id, trial_infeasible, infeasibility_reason) and returns: vizier_trial