code: def call_action(self, service_name, action, body=None, **kwargs):
          
          return self.call_action_future(service_name, action, body, **kwargs).result()
docs: Build and send a single job request with one action.
  
          Returns the action response or raises an exception if the action response is an error (unless
          `raise_action_errors` is passed as `False`) or if the job response is an error (unless `raise_job_errors` is
          passed as `False`).
  
          :param service_name: The name of the service to call
          :type service_name: union[str, unicode]
          :param action: The name of the action to call
          :type action: union[str, unicode]
          :param body: The action request body
          :type body: dict
          :param expansions: A dictionary representing the expansions to perform
          :type expansions: dict
          :param raise_job_errors: Whether to raise a JobError if the job response contains errors (defaults to `True`)
          :type raise_job_errors: bool
          :param raise_action_errors: Whether to raise a CallActionError if any action responses contain errors (defaults
                                      to `True`)
          :type raise_action_errors: bool
          :param timeout: If provided, this will override the default transport timeout values to; requests will expire
                          after this number of seconds plus some buffer defined by the transport, and the client will not
                          block waiting for a response for longer than this amount of time.
          :type timeout: int
          :param switches: A list of switch value integers
          :type switches: list
          :param correlation_id: The request correlation ID
          :type correlation_id: union[str, unicode]
          :param continue_on_error: Whether to continue executing further actions once one action has returned errors
          :type continue_on_error: bool
          :param context: A dictionary of extra values to include in the context header
          :type context: dict
          :param control_extra: A dictionary of extra values to include in the control header
          :type control_extra: dict
  
          :return: The action response
          :rtype: ActionResponse
  
          :raise: ConnectionError, InvalidField, MessageSendError, MessageSendTimeout, MessageTooLarge,
                  MessageReceiveError, MessageReceiveTimeout, InvalidMessage, JobError, CallActionError