:py:mod:`airflow.providers.zendesk.hooks.zendesk`
=================================================

.. py:module:: airflow.providers.zendesk.hooks.zendesk


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.zendesk.hooks.zendesk.ZendeskHook




.. py:class:: ZendeskHook(zendesk_conn_id = default_conn_name)

   Bases: :py:obj:`airflow.hooks.base.BaseHook`

   Interact with Zendesk. This hook uses the Zendesk conn_id.

   :param zendesk_conn_id: The Airflow connection used for Zendesk credentials.

   .. py:attribute:: conn_name_attr
      :annotation: = zendesk_conn_id

      

   .. py:attribute:: default_conn_name
      :annotation: = zendesk_default

      

   .. py:attribute:: conn_type
      :annotation: = zendesk

      

   .. py:attribute:: hook_name
      :annotation: = Zendesk

      

   .. py:method:: get_conn(self)

      Get the underlying Zenpy client.

      :return: zenpy.Zenpy client.


   .. py:method:: get_ticket(self, ticket_id)

      Retrieve ticket.

      :return: Ticket object retrieved.


   .. py:method:: search_tickets(self, **kwargs)

      Search tickets.

      :param kwargs: (optional) Search fields given to the zenpy search method.
      :return: SearchResultGenerator of Ticket objects.


   .. py:method:: create_tickets(self, tickets, **kwargs)

      Create tickets.

      :param tickets: Ticket or List of Ticket to create.
      :param kwargs: (optional) Additional fields given to the zenpy create method.
      :return: A TicketAudit object containing information about the Ticket created.
          When sending bulk request, returns a JobStatus object.


   .. py:method:: update_tickets(self, tickets, **kwargs)

      Update tickets.

      :param tickets: Updated Ticket or List of Ticket object to update.
      :param kwargs: (optional) Additional fields given to the zenpy update method.
      :return: A TicketAudit object containing information about the Ticket updated.
          When sending bulk request, returns a JobStatus object.


   .. py:method:: delete_tickets(self, tickets, **kwargs)

      Delete tickets, returns nothing on success and raises APIException on failure.

      :param tickets: Ticket or List of Ticket to delete.
      :param kwargs: (optional) Additional fields given to the zenpy delete method.
      :return:



