def __init__(self, subdomain=None,<EOL>email=None,<EOL>token=None,<EOL>oauth_token=None,<EOL>password=None,<EOL>session=None,<EOL>timeout=None,<EOL>ratelimit_budget=None,<EOL>proactive_ratelimit=None,<EOL>proactive_ratelimit_request_interval=<NUM_LIT:10>,<EOL>disable_cache=False):
session = self._init_session(email, token, oauth_token, password, session)<EOL>timeout = timeout or self.DEFAULT_TIMEOUT<EOL>self.cache = ZenpyCacheManager(disable_cache)<EOL>config = dict(<EOL>subdomain=subdomain,<EOL>session=session,<EOL>timeout=timeout,<EOL>ratelimit=int(proactive_ratelimit) if proactive_ratelimit is not None else None,<EOL>ratelimit_budget=int(ratelimit_budget) if ratelimit_budget is not None else None,<EOL>ratelimit_request_interval=int(proactive_ratelimit_request_interval),<EOL>cache=self.cache<EOL>)<EOL>self.users = UserApi(config)<EOL>self.user_fields = Api(config, object_type='<STR_LIT>')<EOL>self.groups = GroupApi(config)<EOL>self.macros = MacroApi(config)<EOL>self.organizations = OrganizationApi(config)<EOL>self.organization_memberships = OrganizationMembershipApi(config)<EOL>self.organization_fields = OrganizationFieldsApi(config)<EOL>self.tickets = TicketApi(config)<EOL>self.suspended_tickets = SuspendedTicketApi(config, object_type='<STR_LIT>')<EOL>self.search = Api(config, object_type='<STR_LIT>', endpoint=EndpointFactory('<STR_LIT>'))<EOL>self.topics = Api(config, object_type='<STR_LIT>')<EOL>self.attachments = AttachmentApi(config)<EOL>self.brands = BrandApi(config, object_type='<STR_LIT>')<EOL>self.job_status = Api(config, object_type='<STR_LIT>', endpoint=EndpointFactory('<STR_LIT>'))<EOL>self.jira_links = JiraLinkApi(config)<EOL>self.tags = Api(config, object_type='<STR_LIT>')<EOL>self.satisfaction_ratings = SatisfactionRatingApi(config)<EOL>self.sharing_agreements = SharingAgreementAPI(config)<EOL>self.skips = SkipApi(config)<EOL>self.activities = Api(config, object_type='<STR_LIT>')<EOL>self.group_memberships = GroupMembershipApi(config)<EOL>self.end_user = EndUserApi(config)<EOL>self.ticket_metrics = Api(config, object_type='<STR_LIT>')<EOL>self.ticket_fields = TicketFieldApi(config)<EOL>self.ticket_forms = TicketFormApi(config, object_type='<STR_LIT>')<EOL>self.ticket_import = TicketImportAPI(config)<EOL>self.requests = RequestAPI(config)<EOL>self.chats = ChatApi(config, endpoint=EndpointFactory('<STR_LIT>'))<EOL>self.views = ViewApi(config)<EOL>self.sla_policies = SlaPolicyApi(config)<EOL>self.help_center = HelpCentreApi(config)<EOL>self.recipient_addresses = RecipientAddressApi(config)<EOL>self.nps = NpsApi(config)<EOL>self.triggers = TriggerApi(config, object_type='<STR_LIT>')<EOL>self.automations = AutomationApi(config, object_type='<STR_LIT>')<EOL>self.dynamic_content = DynamicContentApi(config)<EOL>self.targets = TargetApi(config, object_type='<STR_LIT:target>')<EOL>self.talk = TalkApi(config)<EOL>self.custom_agent_roles = CustomAgentRolesApi(config, object_type='<STR_LIT>')<EOL>
Python Wrapper for the Zendesk API.

There are several ways to authenticate with the Zendesk API:
    * Email and password
    * Email and Zendesk API token
    * Email and OAuth token
    * Existing authenticated Requests Session object.


:param subdomain: your Zendesk subdomain
:param email: email address
:param token: Zendesk API token
:param oauth_token: OAuth token
:param password: Zendesk password
:param session: existing Requests Session object
:param timeout: global timeout on API requests.
:param ratelimit_budget: maximum time to spend being rate limited
:param proactive_ratelimit: user specified rate limit.
:param proactive_ratelimit_request_interval: seconds to wait when over proactive_ratelimit.
:param disable_cache: disable caching of objects