class_docstr: Google Cloud Functions APIs.
  
  All the methods in the hook where project_id is used must be called with
  keyword arguments rather than positional.
class_docstr_tok: ["Google","Cloud","Functions","APIs",".","All","the","methods","in","the","hook","where","project_id","is","used","must","be","called","with","keyword","arguments","rather","than","positional","."]
docstr: Invoke a deployed Cloud Function.
  
  This is done synchronously and should only be used for testing purposes,
  as very limited traffic is allowed.
  
  :param function_id: ID of the function to be called
  :param input_data: Input to be passed to the function
  :param location: The location where the function is located.
  :param project_id: Google Cloud Project ID where the function belongs.
      If set to None or missing, the default project ID from the Google
      Cloud connection is used.
docstr_tok: ["Invoke","a","deployed","Cloud","Function",".","This","is","done","synchronously","and","should","only","be","used","for","testing","purposes",",","as","very","limited","traffic","is","allowed",".",":","param","function_id",":","ID","of","the","function","to","be","called",":","param","input_data",":","Input","to","be","passed","to","the","function",":","param","location",":","The","location","where","the","function","is","located",".",":","param","project_id",":","Google","Cloud","Project","ID","where","the","function","belongs",".","If","set","to","None","or","missing",",","the","default","project","ID","from","the","Google","Cloud","connection","is","used","."]
code: def call_function(
      self,
      function_id: str,
      input_data: dict,
      location: str,
      project_id: str = PROVIDE_PROJECT_ID,
  ) -> dict:
      """Invoke a deployed Cloud Function.
  
      This is done synchronously and should only be used for testing purposes,
      as very limited traffic is allowed.
  
      :param function_id: ID of the function to be called
      :param input_data: Input to be passed to the function
      :param location: The location where the function is located.
      :param project_id: Google Cloud Project ID where the function belongs.
          If set to None or missing, the default project ID from the Google
          Cloud connection is used.
      """
      name = f"projects/{project_id}/locations/{location}/functions/{function_id}"
      operation = (
          self.get_conn()
          .projects()
          .locations()
          .functions()
          .call(name=name, body=input_data)
      )
      response = operation.execute(num_retries=self.num_retries)
      if "error" in response:
          raise AirflowException(response["error"])
      return response
  
file_path: airflow/airflow/providers/google/cloud/hooks/functions.py
imports: from __future__ import annotations
  import time
  from typing import Sequence
  import requests
  from googleapiclient.discovery import build
  from airflow.exceptions import AirflowException
  from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID, GoogleBaseHook
label_desc: Use image node_id 9 for calling the CloudFunctionsHook obj's underlying member method code with example usage: obj.call_function(function_id, input_data, location, project_id) and returns: response