mergepythonclient 2.2.0__py3-none-any.whl → 2.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. merge/__init__.py +40 -4
  2. merge/client.py +118 -18
  3. merge/core/__init__.py +75 -21
  4. merge/core/client_wrapper.py +2 -2
  5. merge/resources/__init__.py +33 -1
  6. merge/resources/accounting/__init__.py +1240 -609
  7. merge/resources/accounting/client.py +835 -165
  8. merge/resources/accounting/resources/__init__.py +208 -92
  9. merge/resources/accounting/resources/accounts/__init__.py +36 -6
  10. merge/resources/accounting/resources/accounts/types/__init__.py +34 -4
  11. merge/resources/accounting/resources/async_passthrough/__init__.py +26 -1
  12. merge/resources/accounting/resources/async_passthrough/types/__init__.py +26 -1
  13. merge/resources/accounting/resources/company_info/__init__.py +29 -1
  14. merge/resources/accounting/resources/company_info/types/__init__.py +30 -2
  15. merge/resources/accounting/resources/contacts/__init__.py +29 -1
  16. merge/resources/accounting/resources/contacts/types/__init__.py +30 -2
  17. merge/resources/accounting/resources/credit_notes/__init__.py +40 -8
  18. merge/resources/accounting/resources/credit_notes/types/__init__.py +38 -6
  19. merge/resources/accounting/resources/expense_reports/__init__.py +34 -5
  20. merge/resources/accounting/resources/expense_reports/types/__init__.py +32 -3
  21. merge/resources/accounting/resources/expenses/__init__.py +29 -1
  22. merge/resources/accounting/resources/expenses/types/__init__.py +30 -2
  23. merge/resources/accounting/resources/general_ledger_transactions/__init__.py +29 -1
  24. merge/resources/accounting/resources/general_ledger_transactions/types/__init__.py +30 -2
  25. merge/resources/accounting/resources/invoices/__init__.py +36 -6
  26. merge/resources/accounting/resources/invoices/types/__init__.py +34 -4
  27. merge/resources/accounting/resources/issues/__init__.py +26 -1
  28. merge/resources/accounting/resources/issues/types/__init__.py +26 -1
  29. merge/resources/accounting/resources/items/__init__.py +26 -1
  30. merge/resources/accounting/resources/items/types/__init__.py +30 -2
  31. merge/resources/accounting/resources/journal_entries/__init__.py +29 -1
  32. merge/resources/accounting/resources/journal_entries/types/__init__.py +30 -2
  33. merge/resources/accounting/resources/link_token/__init__.py +26 -1
  34. merge/resources/accounting/resources/link_token/types/__init__.py +26 -1
  35. merge/resources/accounting/resources/linked_accounts/__init__.py +26 -1
  36. merge/resources/accounting/resources/linked_accounts/types/__init__.py +28 -1
  37. merge/resources/accounting/resources/payments/__init__.py +29 -1
  38. merge/resources/accounting/resources/payments/types/__init__.py +30 -2
  39. merge/resources/accounting/resources/projects/__init__.py +29 -1
  40. merge/resources/accounting/resources/projects/types/__init__.py +30 -2
  41. merge/resources/accounting/resources/purchase_orders/__init__.py +29 -1
  42. merge/resources/accounting/resources/purchase_orders/types/__init__.py +30 -2
  43. merge/resources/accounting/resources/transactions/__init__.py +29 -1
  44. merge/resources/accounting/resources/transactions/types/__init__.py +30 -2
  45. merge/resources/accounting/resources/vendor_credits/__init__.py +29 -1
  46. merge/resources/accounting/resources/vendor_credits/types/__init__.py +30 -2
  47. merge/resources/accounting/types/__init__.py +1068 -521
  48. merge/resources/ats/__init__.py +586 -282
  49. merge/resources/ats/client.py +590 -120
  50. merge/resources/ats/resources/__init__.py +150 -63
  51. merge/resources/ats/resources/activities/__init__.py +36 -6
  52. merge/resources/ats/resources/activities/types/__init__.py +34 -4
  53. merge/resources/ats/resources/applications/__init__.py +29 -1
  54. merge/resources/ats/resources/applications/types/__init__.py +30 -2
  55. merge/resources/ats/resources/async_passthrough/__init__.py +26 -1
  56. merge/resources/ats/resources/async_passthrough/types/__init__.py +26 -1
  57. merge/resources/ats/resources/candidates/__init__.py +30 -1
  58. merge/resources/ats/resources/candidates/types/__init__.py +32 -3
  59. merge/resources/ats/resources/eeocs/__init__.py +36 -6
  60. merge/resources/ats/resources/eeocs/types/__init__.py +34 -4
  61. merge/resources/ats/resources/interviews/__init__.py +29 -1
  62. merge/resources/ats/resources/interviews/types/__init__.py +30 -2
  63. merge/resources/ats/resources/issues/__init__.py +26 -1
  64. merge/resources/ats/resources/issues/types/__init__.py +26 -1
  65. merge/resources/ats/resources/job_postings/__init__.py +26 -1
  66. merge/resources/ats/resources/job_postings/types/__init__.py +26 -1
  67. merge/resources/ats/resources/jobs/__init__.py +36 -6
  68. merge/resources/ats/resources/jobs/types/__init__.py +34 -4
  69. merge/resources/ats/resources/link_token/__init__.py +26 -1
  70. merge/resources/ats/resources/link_token/types/__init__.py +26 -1
  71. merge/resources/ats/resources/linked_accounts/__init__.py +26 -1
  72. merge/resources/ats/resources/linked_accounts/types/__init__.py +28 -1
  73. merge/resources/ats/resources/offers/__init__.py +26 -1
  74. merge/resources/ats/resources/offers/types/__init__.py +30 -2
  75. merge/resources/ats/resources/scorecards/__init__.py +29 -1
  76. merge/resources/ats/resources/scorecards/types/__init__.py +30 -2
  77. merge/resources/ats/types/__init__.py +462 -219
  78. merge/resources/crm/__init__.py +566 -272
  79. merge/resources/crm/client.py +556 -114
  80. merge/resources/crm/resources/__init__.py +121 -47
  81. merge/resources/crm/resources/async_passthrough/__init__.py +26 -1
  82. merge/resources/crm/resources/async_passthrough/types/__init__.py +26 -1
  83. merge/resources/crm/resources/contacts/__init__.py +29 -1
  84. merge/resources/crm/resources/contacts/types/__init__.py +30 -2
  85. merge/resources/crm/resources/engagements/__init__.py +29 -1
  86. merge/resources/crm/resources/engagements/types/__init__.py +30 -2
  87. merge/resources/crm/resources/issues/__init__.py +26 -1
  88. merge/resources/crm/resources/issues/types/__init__.py +26 -1
  89. merge/resources/crm/resources/leads/__init__.py +26 -1
  90. merge/resources/crm/resources/leads/types/__init__.py +30 -2
  91. merge/resources/crm/resources/link_token/__init__.py +26 -1
  92. merge/resources/crm/resources/link_token/types/__init__.py +26 -1
  93. merge/resources/crm/resources/linked_accounts/__init__.py +26 -1
  94. merge/resources/crm/resources/linked_accounts/types/__init__.py +28 -1
  95. merge/resources/crm/resources/notes/__init__.py +26 -1
  96. merge/resources/crm/resources/notes/types/__init__.py +30 -2
  97. merge/resources/crm/resources/opportunities/__init__.py +34 -1
  98. merge/resources/crm/resources/opportunities/types/__init__.py +32 -3
  99. merge/resources/crm/resources/tasks/__init__.py +26 -1
  100. merge/resources/crm/resources/tasks/types/__init__.py +30 -2
  101. merge/resources/crm/types/__init__.py +470 -224
  102. merge/resources/filestorage/__init__.py +322 -150
  103. merge/resources/filestorage/client.py +405 -87
  104. merge/resources/filestorage/resources/__init__.py +91 -34
  105. merge/resources/filestorage/resources/async_passthrough/__init__.py +26 -1
  106. merge/resources/filestorage/resources/async_passthrough/types/__init__.py +26 -1
  107. merge/resources/filestorage/resources/files/__init__.py +36 -6
  108. merge/resources/filestorage/resources/files/types/__init__.py +34 -4
  109. merge/resources/filestorage/resources/folders/__init__.py +29 -1
  110. merge/resources/filestorage/resources/folders/types/__init__.py +30 -2
  111. merge/resources/filestorage/resources/issues/__init__.py +26 -1
  112. merge/resources/filestorage/resources/issues/types/__init__.py +26 -1
  113. merge/resources/filestorage/resources/linked_accounts/__init__.py +26 -1
  114. merge/resources/filestorage/resources/linked_accounts/types/__init__.py +28 -1
  115. merge/resources/filestorage/types/__init__.py +258 -117
  116. merge/resources/hris/__init__.py +576 -277
  117. merge/resources/hris/client.py +590 -120
  118. merge/resources/hris/resources/__init__.py +188 -86
  119. merge/resources/hris/resources/async_passthrough/__init__.py +26 -1
  120. merge/resources/hris/resources/async_passthrough/types/__init__.py +26 -1
  121. merge/resources/hris/resources/bank_info/__init__.py +29 -1
  122. merge/resources/hris/resources/bank_info/types/__init__.py +30 -2
  123. merge/resources/hris/resources/employee_payroll_runs/__init__.py +29 -1
  124. merge/resources/hris/resources/employee_payroll_runs/types/__init__.py +30 -2
  125. merge/resources/hris/resources/employees/__init__.py +44 -10
  126. merge/resources/hris/resources/employees/types/__init__.py +42 -8
  127. merge/resources/hris/resources/employments/__init__.py +42 -9
  128. merge/resources/hris/resources/employments/types/__init__.py +40 -7
  129. merge/resources/hris/resources/issues/__init__.py +26 -1
  130. merge/resources/hris/resources/issues/types/__init__.py +26 -1
  131. merge/resources/hris/resources/link_token/__init__.py +26 -1
  132. merge/resources/hris/resources/link_token/types/__init__.py +26 -1
  133. merge/resources/hris/resources/linked_accounts/__init__.py +26 -1
  134. merge/resources/hris/resources/linked_accounts/types/__init__.py +28 -1
  135. merge/resources/hris/resources/locations/__init__.py +38 -7
  136. merge/resources/hris/resources/locations/types/__init__.py +36 -5
  137. merge/resources/hris/resources/payroll_runs/__init__.py +38 -7
  138. merge/resources/hris/resources/payroll_runs/types/__init__.py +36 -5
  139. merge/resources/hris/resources/time_off/__init__.py +44 -10
  140. merge/resources/hris/resources/time_off/types/__init__.py +42 -8
  141. merge/resources/hris/resources/time_off_balances/__init__.py +26 -1
  142. merge/resources/hris/resources/time_off_balances/types/__init__.py +28 -1
  143. merge/resources/hris/resources/timesheet_entries/__init__.py +26 -1
  144. merge/resources/hris/resources/timesheet_entries/types/__init__.py +28 -1
  145. merge/resources/hris/types/__init__.py +422 -199
  146. merge/resources/ticketing/__init__.py +464 -221
  147. merge/resources/ticketing/client.py +507 -105
  148. merge/resources/ticketing/resources/__init__.py +120 -48
  149. merge/resources/ticketing/resources/async_passthrough/__init__.py +26 -1
  150. merge/resources/ticketing/resources/async_passthrough/types/__init__.py +26 -1
  151. merge/resources/ticketing/resources/collections/__init__.py +26 -1
  152. merge/resources/ticketing/resources/collections/types/__init__.py +28 -1
  153. merge/resources/ticketing/resources/comments/__init__.py +29 -1
  154. merge/resources/ticketing/resources/comments/types/__init__.py +30 -2
  155. merge/resources/ticketing/resources/issues/__init__.py +26 -1
  156. merge/resources/ticketing/resources/issues/types/__init__.py +26 -1
  157. merge/resources/ticketing/resources/link_token/__init__.py +26 -1
  158. merge/resources/ticketing/resources/link_token/types/__init__.py +26 -1
  159. merge/resources/ticketing/resources/linked_accounts/__init__.py +26 -1
  160. merge/resources/ticketing/resources/linked_accounts/types/__init__.py +28 -1
  161. merge/resources/ticketing/resources/projects/__init__.py +26 -1
  162. merge/resources/ticketing/resources/projects/types/__init__.py +26 -1
  163. merge/resources/ticketing/resources/tickets/__init__.py +44 -10
  164. merge/resources/ticketing/resources/tickets/types/__init__.py +42 -8
  165. merge/resources/ticketing/resources/users/__init__.py +26 -1
  166. merge/resources/ticketing/resources/users/types/__init__.py +30 -2
  167. merge/resources/ticketing/types/__init__.py +370 -173
  168. {mergepythonclient-2.2.0.dist-info → mergepythonclient-2.3.0.dist-info}/METADATA +2 -1
  169. {mergepythonclient-2.2.0.dist-info → mergepythonclient-2.3.0.dist-info}/RECORD +171 -171
  170. {mergepythonclient-2.2.0.dist-info → mergepythonclient-2.3.0.dist-info}/LICENSE.md +0 -0
  171. {mergepythonclient-2.2.0.dist-info → mergepythonclient-2.3.0.dist-info}/WHEEL +0 -0
@@ -1,191 +1,385 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ from __future__ import annotations
4
+
5
+ import typing
6
+
3
7
  from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
4
8
  from .raw_client import AsyncRawCrmClient, RawCrmClient
5
- from .resources.account_details.client import AccountDetailsClient, AsyncAccountDetailsClient
6
- from .resources.account_token.client import AccountTokenClient, AsyncAccountTokenClient
7
- from .resources.accounts.client import AccountsClient, AsyncAccountsClient
8
- from .resources.association_types.client import AssociationTypesClient, AsyncAssociationTypesClient
9
- from .resources.associations.client import AssociationsClient, AsyncAssociationsClient
10
- from .resources.async_passthrough.client import AsyncAsyncPassthroughClient
11
- from .resources.async_passthrough.client import (
12
- AsyncPassthroughClient as resources_crm_resources_async_passthrough_client_AsyncPassthroughClient,
13
- )
14
- from .resources.audit_trail.client import AsyncAuditTrailClient, AuditTrailClient
15
- from .resources.available_actions.client import AsyncAvailableActionsClient, AvailableActionsClient
16
- from .resources.contacts.client import AsyncContactsClient, ContactsClient
17
- from .resources.custom_object_classes.client import AsyncCustomObjectClassesClient, CustomObjectClassesClient
18
- from .resources.custom_objects.client import AsyncCustomObjectsClient, CustomObjectsClient
19
- from .resources.delete_account.client import AsyncDeleteAccountClient, DeleteAccountClient
20
- from .resources.engagement_types.client import AsyncEngagementTypesClient, EngagementTypesClient
21
- from .resources.engagements.client import AsyncEngagementsClient, EngagementsClient
22
- from .resources.field_mapping.client import AsyncFieldMappingClient, FieldMappingClient
23
- from .resources.force_resync.client import AsyncForceResyncClient, ForceResyncClient
24
- from .resources.generate_key.client import AsyncGenerateKeyClient, GenerateKeyClient
25
- from .resources.issues.client import AsyncIssuesClient, IssuesClient
26
- from .resources.leads.client import AsyncLeadsClient, LeadsClient
27
- from .resources.link_token.client import AsyncLinkTokenClient, LinkTokenClient
28
- from .resources.linked_accounts.client import AsyncLinkedAccountsClient, LinkedAccountsClient
29
- from .resources.notes.client import AsyncNotesClient, NotesClient
30
- from .resources.opportunities.client import AsyncOpportunitiesClient, OpportunitiesClient
31
- from .resources.passthrough.client import (
32
- AsyncPassthroughClient as resources_crm_resources_passthrough_client_AsyncPassthroughClient,
33
- )
34
- from .resources.passthrough.client import PassthroughClient
35
- from .resources.regenerate_key.client import AsyncRegenerateKeyClient, RegenerateKeyClient
36
- from .resources.scopes.client import AsyncScopesClient, ScopesClient
37
- from .resources.stages.client import AsyncStagesClient, StagesClient
38
- from .resources.sync_status.client import AsyncSyncStatusClient, SyncStatusClient
39
- from .resources.tasks.client import AsyncTasksClient, TasksClient
40
- from .resources.users.client import AsyncUsersClient, UsersClient
41
- from .resources.webhook_receivers.client import AsyncWebhookReceiversClient, WebhookReceiversClient
9
+
10
+ if typing.TYPE_CHECKING:
11
+ from .resources.account_details.client import AccountDetailsClient, AsyncAccountDetailsClient
12
+ from .resources.account_token.client import AccountTokenClient, AsyncAccountTokenClient
13
+ from .resources.accounts.client import AccountsClient, AsyncAccountsClient
14
+ from .resources.association_types.client import AssociationTypesClient, AsyncAssociationTypesClient
15
+ from .resources.associations.client import AssociationsClient, AsyncAssociationsClient
16
+ from .resources.async_passthrough.client import AsyncAsyncPassthroughClient
17
+ from .resources.async_passthrough.client import (
18
+ AsyncPassthroughClient as resources_crm_resources_async_passthrough_client_AsyncPassthroughClient,
19
+ )
20
+ from .resources.audit_trail.client import AsyncAuditTrailClient, AuditTrailClient
21
+ from .resources.available_actions.client import AsyncAvailableActionsClient, AvailableActionsClient
22
+ from .resources.contacts.client import AsyncContactsClient, ContactsClient
23
+ from .resources.custom_object_classes.client import AsyncCustomObjectClassesClient, CustomObjectClassesClient
24
+ from .resources.custom_objects.client import AsyncCustomObjectsClient, CustomObjectsClient
25
+ from .resources.delete_account.client import AsyncDeleteAccountClient, DeleteAccountClient
26
+ from .resources.engagement_types.client import AsyncEngagementTypesClient, EngagementTypesClient
27
+ from .resources.engagements.client import AsyncEngagementsClient, EngagementsClient
28
+ from .resources.field_mapping.client import AsyncFieldMappingClient, FieldMappingClient
29
+ from .resources.force_resync.client import AsyncForceResyncClient, ForceResyncClient
30
+ from .resources.generate_key.client import AsyncGenerateKeyClient, GenerateKeyClient
31
+ from .resources.issues.client import AsyncIssuesClient, IssuesClient
32
+ from .resources.leads.client import AsyncLeadsClient, LeadsClient
33
+ from .resources.link_token.client import AsyncLinkTokenClient, LinkTokenClient
34
+ from .resources.linked_accounts.client import AsyncLinkedAccountsClient, LinkedAccountsClient
35
+ from .resources.notes.client import AsyncNotesClient, NotesClient
36
+ from .resources.opportunities.client import AsyncOpportunitiesClient, OpportunitiesClient
37
+ from .resources.passthrough.client import (
38
+ AsyncPassthroughClient as resources_crm_resources_passthrough_client_AsyncPassthroughClient,
39
+ )
40
+ from .resources.passthrough.client import PassthroughClient
41
+ from .resources.regenerate_key.client import AsyncRegenerateKeyClient, RegenerateKeyClient
42
+ from .resources.scopes.client import AsyncScopesClient, ScopesClient
43
+ from .resources.stages.client import AsyncStagesClient, StagesClient
44
+ from .resources.sync_status.client import AsyncSyncStatusClient, SyncStatusClient
45
+ from .resources.tasks.client import AsyncTasksClient, TasksClient
46
+ from .resources.users.client import AsyncUsersClient, UsersClient
47
+ from .resources.webhook_receivers.client import AsyncWebhookReceiversClient, WebhookReceiversClient
42
48
 
43
49
 
44
50
  class CrmClient:
45
51
  def __init__(self, *, client_wrapper: SyncClientWrapper):
46
52
  self._raw_client = RawCrmClient(client_wrapper=client_wrapper)
47
- self.account_details = AccountDetailsClient(client_wrapper=client_wrapper)
53
+ self._client_wrapper = client_wrapper
54
+ self._account_details: typing.Optional[AccountDetailsClient] = None
55
+ self._account_token: typing.Optional[AccountTokenClient] = None
56
+ self._accounts: typing.Optional[AccountsClient] = None
57
+ self._async_passthrough: typing.Optional[
58
+ resources_crm_resources_async_passthrough_client_AsyncPassthroughClient
59
+ ] = None
60
+ self._audit_trail: typing.Optional[AuditTrailClient] = None
61
+ self._available_actions: typing.Optional[AvailableActionsClient] = None
62
+ self._contacts: typing.Optional[ContactsClient] = None
63
+ self._custom_object_classes: typing.Optional[CustomObjectClassesClient] = None
64
+ self._association_types: typing.Optional[AssociationTypesClient] = None
65
+ self._custom_objects: typing.Optional[CustomObjectsClient] = None
66
+ self._associations: typing.Optional[AssociationsClient] = None
67
+ self._scopes: typing.Optional[ScopesClient] = None
68
+ self._delete_account: typing.Optional[DeleteAccountClient] = None
69
+ self._engagement_types: typing.Optional[EngagementTypesClient] = None
70
+ self._engagements: typing.Optional[EngagementsClient] = None
71
+ self._field_mapping: typing.Optional[FieldMappingClient] = None
72
+ self._generate_key: typing.Optional[GenerateKeyClient] = None
73
+ self._issues: typing.Optional[IssuesClient] = None
74
+ self._leads: typing.Optional[LeadsClient] = None
75
+ self._link_token: typing.Optional[LinkTokenClient] = None
76
+ self._linked_accounts: typing.Optional[LinkedAccountsClient] = None
77
+ self._notes: typing.Optional[NotesClient] = None
78
+ self._opportunities: typing.Optional[OpportunitiesClient] = None
79
+ self._passthrough: typing.Optional[PassthroughClient] = None
80
+ self._regenerate_key: typing.Optional[RegenerateKeyClient] = None
81
+ self._stages: typing.Optional[StagesClient] = None
82
+ self._sync_status: typing.Optional[SyncStatusClient] = None
83
+ self._force_resync: typing.Optional[ForceResyncClient] = None
84
+ self._tasks: typing.Optional[TasksClient] = None
85
+ self._users: typing.Optional[UsersClient] = None
86
+ self._webhook_receivers: typing.Optional[WebhookReceiversClient] = None
48
87
 
49
- self.account_token = AccountTokenClient(client_wrapper=client_wrapper)
88
+ @property
89
+ def with_raw_response(self) -> RawCrmClient:
90
+ """
91
+ Retrieves a raw implementation of this client that returns raw responses.
50
92
 
51
- self.accounts = AccountsClient(client_wrapper=client_wrapper)
93
+ Returns
94
+ -------
95
+ RawCrmClient
96
+ """
97
+ return self._raw_client
52
98
 
53
- self.async_passthrough = resources_crm_resources_async_passthrough_client_AsyncPassthroughClient(
54
- client_wrapper=client_wrapper
55
- )
99
+ @property
100
+ def account_details(self):
101
+ if self._account_details is None:
102
+ from .resources.account_details.client import AccountDetailsClient # noqa: E402
56
103
 
57
- self.audit_trail = AuditTrailClient(client_wrapper=client_wrapper)
104
+ self._account_details = AccountDetailsClient(client_wrapper=self._client_wrapper)
105
+ return self._account_details
58
106
 
59
- self.available_actions = AvailableActionsClient(client_wrapper=client_wrapper)
107
+ @property
108
+ def account_token(self):
109
+ if self._account_token is None:
110
+ from .resources.account_token.client import AccountTokenClient # noqa: E402
60
111
 
61
- self.contacts = ContactsClient(client_wrapper=client_wrapper)
112
+ self._account_token = AccountTokenClient(client_wrapper=self._client_wrapper)
113
+ return self._account_token
62
114
 
63
- self.custom_object_classes = CustomObjectClassesClient(client_wrapper=client_wrapper)
115
+ @property
116
+ def accounts(self):
117
+ if self._accounts is None:
118
+ from .resources.accounts.client import AccountsClient # noqa: E402
64
119
 
65
- self.association_types = AssociationTypesClient(client_wrapper=client_wrapper)
120
+ self._accounts = AccountsClient(client_wrapper=self._client_wrapper)
121
+ return self._accounts
66
122
 
67
- self.custom_objects = CustomObjectsClient(client_wrapper=client_wrapper)
123
+ @property
124
+ def async_passthrough(self):
125
+ if self._async_passthrough is None:
126
+ self._async_passthrough = resources_crm_resources_async_passthrough_client_AsyncPassthroughClient(
127
+ client_wrapper=self._client_wrapper
128
+ )
129
+ return self._async_passthrough
130
+
131
+ @property
132
+ def audit_trail(self):
133
+ if self._audit_trail is None:
134
+ from .resources.audit_trail.client import AuditTrailClient # noqa: E402
68
135
 
69
- self.associations = AssociationsClient(client_wrapper=client_wrapper)
136
+ self._audit_trail = AuditTrailClient(client_wrapper=self._client_wrapper)
137
+ return self._audit_trail
70
138
 
71
- self.scopes = ScopesClient(client_wrapper=client_wrapper)
139
+ @property
140
+ def available_actions(self):
141
+ if self._available_actions is None:
142
+ from .resources.available_actions.client import AvailableActionsClient # noqa: E402
72
143
 
73
- self.delete_account = DeleteAccountClient(client_wrapper=client_wrapper)
144
+ self._available_actions = AvailableActionsClient(client_wrapper=self._client_wrapper)
145
+ return self._available_actions
74
146
 
75
- self.engagement_types = EngagementTypesClient(client_wrapper=client_wrapper)
147
+ @property
148
+ def contacts(self):
149
+ if self._contacts is None:
150
+ from .resources.contacts.client import ContactsClient # noqa: E402
76
151
 
77
- self.engagements = EngagementsClient(client_wrapper=client_wrapper)
152
+ self._contacts = ContactsClient(client_wrapper=self._client_wrapper)
153
+ return self._contacts
78
154
 
79
- self.field_mapping = FieldMappingClient(client_wrapper=client_wrapper)
155
+ @property
156
+ def custom_object_classes(self):
157
+ if self._custom_object_classes is None:
158
+ from .resources.custom_object_classes.client import CustomObjectClassesClient # noqa: E402
80
159
 
81
- self.generate_key = GenerateKeyClient(client_wrapper=client_wrapper)
160
+ self._custom_object_classes = CustomObjectClassesClient(client_wrapper=self._client_wrapper)
161
+ return self._custom_object_classes
82
162
 
83
- self.issues = IssuesClient(client_wrapper=client_wrapper)
163
+ @property
164
+ def association_types(self):
165
+ if self._association_types is None:
166
+ from .resources.association_types.client import AssociationTypesClient # noqa: E402
84
167
 
85
- self.leads = LeadsClient(client_wrapper=client_wrapper)
168
+ self._association_types = AssociationTypesClient(client_wrapper=self._client_wrapper)
169
+ return self._association_types
86
170
 
87
- self.link_token = LinkTokenClient(client_wrapper=client_wrapper)
171
+ @property
172
+ def custom_objects(self):
173
+ if self._custom_objects is None:
174
+ from .resources.custom_objects.client import CustomObjectsClient # noqa: E402
88
175
 
89
- self.linked_accounts = LinkedAccountsClient(client_wrapper=client_wrapper)
176
+ self._custom_objects = CustomObjectsClient(client_wrapper=self._client_wrapper)
177
+ return self._custom_objects
90
178
 
91
- self.notes = NotesClient(client_wrapper=client_wrapper)
179
+ @property
180
+ def associations(self):
181
+ if self._associations is None:
182
+ from .resources.associations.client import AssociationsClient # noqa: E402
92
183
 
93
- self.opportunities = OpportunitiesClient(client_wrapper=client_wrapper)
184
+ self._associations = AssociationsClient(client_wrapper=self._client_wrapper)
185
+ return self._associations
94
186
 
95
- self.passthrough = PassthroughClient(client_wrapper=client_wrapper)
187
+ @property
188
+ def scopes(self):
189
+ if self._scopes is None:
190
+ from .resources.scopes.client import ScopesClient # noqa: E402
96
191
 
97
- self.regenerate_key = RegenerateKeyClient(client_wrapper=client_wrapper)
192
+ self._scopes = ScopesClient(client_wrapper=self._client_wrapper)
193
+ return self._scopes
98
194
 
99
- self.stages = StagesClient(client_wrapper=client_wrapper)
195
+ @property
196
+ def delete_account(self):
197
+ if self._delete_account is None:
198
+ from .resources.delete_account.client import DeleteAccountClient # noqa: E402
100
199
 
101
- self.sync_status = SyncStatusClient(client_wrapper=client_wrapper)
200
+ self._delete_account = DeleteAccountClient(client_wrapper=self._client_wrapper)
201
+ return self._delete_account
102
202
 
103
- self.force_resync = ForceResyncClient(client_wrapper=client_wrapper)
203
+ @property
204
+ def engagement_types(self):
205
+ if self._engagement_types is None:
206
+ from .resources.engagement_types.client import EngagementTypesClient # noqa: E402
104
207
 
105
- self.tasks = TasksClient(client_wrapper=client_wrapper)
208
+ self._engagement_types = EngagementTypesClient(client_wrapper=self._client_wrapper)
209
+ return self._engagement_types
106
210
 
107
- self.users = UsersClient(client_wrapper=client_wrapper)
211
+ @property
212
+ def engagements(self):
213
+ if self._engagements is None:
214
+ from .resources.engagements.client import EngagementsClient # noqa: E402
108
215
 
109
- self.webhook_receivers = WebhookReceiversClient(client_wrapper=client_wrapper)
216
+ self._engagements = EngagementsClient(client_wrapper=self._client_wrapper)
217
+ return self._engagements
110
218
 
111
219
  @property
112
- def with_raw_response(self) -> RawCrmClient:
113
- """
114
- Retrieves a raw implementation of this client that returns raw responses.
220
+ def field_mapping(self):
221
+ if self._field_mapping is None:
222
+ from .resources.field_mapping.client import FieldMappingClient # noqa: E402
115
223
 
116
- Returns
117
- -------
118
- RawCrmClient
119
- """
120
- return self._raw_client
224
+ self._field_mapping = FieldMappingClient(client_wrapper=self._client_wrapper)
225
+ return self._field_mapping
121
226
 
227
+ @property
228
+ def generate_key(self):
229
+ if self._generate_key is None:
230
+ from .resources.generate_key.client import GenerateKeyClient # noqa: E402
122
231
 
123
- class AsyncCrmClient:
124
- def __init__(self, *, client_wrapper: AsyncClientWrapper):
125
- self._raw_client = AsyncRawCrmClient(client_wrapper=client_wrapper)
126
- self.account_details = AsyncAccountDetailsClient(client_wrapper=client_wrapper)
232
+ self._generate_key = GenerateKeyClient(client_wrapper=self._client_wrapper)
233
+ return self._generate_key
127
234
 
128
- self.account_token = AsyncAccountTokenClient(client_wrapper=client_wrapper)
235
+ @property
236
+ def issues(self):
237
+ if self._issues is None:
238
+ from .resources.issues.client import IssuesClient # noqa: E402
129
239
 
130
- self.accounts = AsyncAccountsClient(client_wrapper=client_wrapper)
240
+ self._issues = IssuesClient(client_wrapper=self._client_wrapper)
241
+ return self._issues
131
242
 
132
- self.async_passthrough = AsyncAsyncPassthroughClient(client_wrapper=client_wrapper)
243
+ @property
244
+ def leads(self):
245
+ if self._leads is None:
246
+ from .resources.leads.client import LeadsClient # noqa: E402
133
247
 
134
- self.audit_trail = AsyncAuditTrailClient(client_wrapper=client_wrapper)
248
+ self._leads = LeadsClient(client_wrapper=self._client_wrapper)
249
+ return self._leads
135
250
 
136
- self.available_actions = AsyncAvailableActionsClient(client_wrapper=client_wrapper)
251
+ @property
252
+ def link_token(self):
253
+ if self._link_token is None:
254
+ from .resources.link_token.client import LinkTokenClient # noqa: E402
137
255
 
138
- self.contacts = AsyncContactsClient(client_wrapper=client_wrapper)
256
+ self._link_token = LinkTokenClient(client_wrapper=self._client_wrapper)
257
+ return self._link_token
139
258
 
140
- self.custom_object_classes = AsyncCustomObjectClassesClient(client_wrapper=client_wrapper)
259
+ @property
260
+ def linked_accounts(self):
261
+ if self._linked_accounts is None:
262
+ from .resources.linked_accounts.client import LinkedAccountsClient # noqa: E402
141
263
 
142
- self.association_types = AsyncAssociationTypesClient(client_wrapper=client_wrapper)
264
+ self._linked_accounts = LinkedAccountsClient(client_wrapper=self._client_wrapper)
265
+ return self._linked_accounts
143
266
 
144
- self.custom_objects = AsyncCustomObjectsClient(client_wrapper=client_wrapper)
267
+ @property
268
+ def notes(self):
269
+ if self._notes is None:
270
+ from .resources.notes.client import NotesClient # noqa: E402
145
271
 
146
- self.associations = AsyncAssociationsClient(client_wrapper=client_wrapper)
272
+ self._notes = NotesClient(client_wrapper=self._client_wrapper)
273
+ return self._notes
147
274
 
148
- self.scopes = AsyncScopesClient(client_wrapper=client_wrapper)
275
+ @property
276
+ def opportunities(self):
277
+ if self._opportunities is None:
278
+ from .resources.opportunities.client import OpportunitiesClient # noqa: E402
149
279
 
150
- self.delete_account = AsyncDeleteAccountClient(client_wrapper=client_wrapper)
280
+ self._opportunities = OpportunitiesClient(client_wrapper=self._client_wrapper)
281
+ return self._opportunities
151
282
 
152
- self.engagement_types = AsyncEngagementTypesClient(client_wrapper=client_wrapper)
283
+ @property
284
+ def passthrough(self):
285
+ if self._passthrough is None:
286
+ from .resources.passthrough.client import PassthroughClient # noqa: E402
153
287
 
154
- self.engagements = AsyncEngagementsClient(client_wrapper=client_wrapper)
288
+ self._passthrough = PassthroughClient(client_wrapper=self._client_wrapper)
289
+ return self._passthrough
155
290
 
156
- self.field_mapping = AsyncFieldMappingClient(client_wrapper=client_wrapper)
291
+ @property
292
+ def regenerate_key(self):
293
+ if self._regenerate_key is None:
294
+ from .resources.regenerate_key.client import RegenerateKeyClient # noqa: E402
157
295
 
158
- self.generate_key = AsyncGenerateKeyClient(client_wrapper=client_wrapper)
296
+ self._regenerate_key = RegenerateKeyClient(client_wrapper=self._client_wrapper)
297
+ return self._regenerate_key
159
298
 
160
- self.issues = AsyncIssuesClient(client_wrapper=client_wrapper)
299
+ @property
300
+ def stages(self):
301
+ if self._stages is None:
302
+ from .resources.stages.client import StagesClient # noqa: E402
161
303
 
162
- self.leads = AsyncLeadsClient(client_wrapper=client_wrapper)
304
+ self._stages = StagesClient(client_wrapper=self._client_wrapper)
305
+ return self._stages
163
306
 
164
- self.link_token = AsyncLinkTokenClient(client_wrapper=client_wrapper)
307
+ @property
308
+ def sync_status(self):
309
+ if self._sync_status is None:
310
+ from .resources.sync_status.client import SyncStatusClient # noqa: E402
165
311
 
166
- self.linked_accounts = AsyncLinkedAccountsClient(client_wrapper=client_wrapper)
312
+ self._sync_status = SyncStatusClient(client_wrapper=self._client_wrapper)
313
+ return self._sync_status
167
314
 
168
- self.notes = AsyncNotesClient(client_wrapper=client_wrapper)
315
+ @property
316
+ def force_resync(self):
317
+ if self._force_resync is None:
318
+ from .resources.force_resync.client import ForceResyncClient # noqa: E402
169
319
 
170
- self.opportunities = AsyncOpportunitiesClient(client_wrapper=client_wrapper)
320
+ self._force_resync = ForceResyncClient(client_wrapper=self._client_wrapper)
321
+ return self._force_resync
171
322
 
172
- self.passthrough = resources_crm_resources_passthrough_client_AsyncPassthroughClient(
173
- client_wrapper=client_wrapper
174
- )
323
+ @property
324
+ def tasks(self):
325
+ if self._tasks is None:
326
+ from .resources.tasks.client import TasksClient # noqa: E402
175
327
 
176
- self.regenerate_key = AsyncRegenerateKeyClient(client_wrapper=client_wrapper)
328
+ self._tasks = TasksClient(client_wrapper=self._client_wrapper)
329
+ return self._tasks
177
330
 
178
- self.stages = AsyncStagesClient(client_wrapper=client_wrapper)
331
+ @property
332
+ def users(self):
333
+ if self._users is None:
334
+ from .resources.users.client import UsersClient # noqa: E402
179
335
 
180
- self.sync_status = AsyncSyncStatusClient(client_wrapper=client_wrapper)
336
+ self._users = UsersClient(client_wrapper=self._client_wrapper)
337
+ return self._users
181
338
 
182
- self.force_resync = AsyncForceResyncClient(client_wrapper=client_wrapper)
339
+ @property
340
+ def webhook_receivers(self):
341
+ if self._webhook_receivers is None:
342
+ from .resources.webhook_receivers.client import WebhookReceiversClient # noqa: E402
183
343
 
184
- self.tasks = AsyncTasksClient(client_wrapper=client_wrapper)
344
+ self._webhook_receivers = WebhookReceiversClient(client_wrapper=self._client_wrapper)
345
+ return self._webhook_receivers
185
346
 
186
- self.users = AsyncUsersClient(client_wrapper=client_wrapper)
187
347
 
188
- self.webhook_receivers = AsyncWebhookReceiversClient(client_wrapper=client_wrapper)
348
+ class AsyncCrmClient:
349
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
350
+ self._raw_client = AsyncRawCrmClient(client_wrapper=client_wrapper)
351
+ self._client_wrapper = client_wrapper
352
+ self._account_details: typing.Optional[AsyncAccountDetailsClient] = None
353
+ self._account_token: typing.Optional[AsyncAccountTokenClient] = None
354
+ self._accounts: typing.Optional[AsyncAccountsClient] = None
355
+ self._async_passthrough: typing.Optional[AsyncAsyncPassthroughClient] = None
356
+ self._audit_trail: typing.Optional[AsyncAuditTrailClient] = None
357
+ self._available_actions: typing.Optional[AsyncAvailableActionsClient] = None
358
+ self._contacts: typing.Optional[AsyncContactsClient] = None
359
+ self._custom_object_classes: typing.Optional[AsyncCustomObjectClassesClient] = None
360
+ self._association_types: typing.Optional[AsyncAssociationTypesClient] = None
361
+ self._custom_objects: typing.Optional[AsyncCustomObjectsClient] = None
362
+ self._associations: typing.Optional[AsyncAssociationsClient] = None
363
+ self._scopes: typing.Optional[AsyncScopesClient] = None
364
+ self._delete_account: typing.Optional[AsyncDeleteAccountClient] = None
365
+ self._engagement_types: typing.Optional[AsyncEngagementTypesClient] = None
366
+ self._engagements: typing.Optional[AsyncEngagementsClient] = None
367
+ self._field_mapping: typing.Optional[AsyncFieldMappingClient] = None
368
+ self._generate_key: typing.Optional[AsyncGenerateKeyClient] = None
369
+ self._issues: typing.Optional[AsyncIssuesClient] = None
370
+ self._leads: typing.Optional[AsyncLeadsClient] = None
371
+ self._link_token: typing.Optional[AsyncLinkTokenClient] = None
372
+ self._linked_accounts: typing.Optional[AsyncLinkedAccountsClient] = None
373
+ self._notes: typing.Optional[AsyncNotesClient] = None
374
+ self._opportunities: typing.Optional[AsyncOpportunitiesClient] = None
375
+ self._passthrough: typing.Optional[resources_crm_resources_passthrough_client_AsyncPassthroughClient] = None
376
+ self._regenerate_key: typing.Optional[AsyncRegenerateKeyClient] = None
377
+ self._stages: typing.Optional[AsyncStagesClient] = None
378
+ self._sync_status: typing.Optional[AsyncSyncStatusClient] = None
379
+ self._force_resync: typing.Optional[AsyncForceResyncClient] = None
380
+ self._tasks: typing.Optional[AsyncTasksClient] = None
381
+ self._users: typing.Optional[AsyncUsersClient] = None
382
+ self._webhook_receivers: typing.Optional[AsyncWebhookReceiversClient] = None
189
383
 
190
384
  @property
191
385
  def with_raw_response(self) -> AsyncRawCrmClient:
@@ -197,3 +391,251 @@ class AsyncCrmClient:
197
391
  AsyncRawCrmClient
198
392
  """
199
393
  return self._raw_client
394
+
395
+ @property
396
+ def account_details(self):
397
+ if self._account_details is None:
398
+ from .resources.account_details.client import AsyncAccountDetailsClient # noqa: E402
399
+
400
+ self._account_details = AsyncAccountDetailsClient(client_wrapper=self._client_wrapper)
401
+ return self._account_details
402
+
403
+ @property
404
+ def account_token(self):
405
+ if self._account_token is None:
406
+ from .resources.account_token.client import AsyncAccountTokenClient # noqa: E402
407
+
408
+ self._account_token = AsyncAccountTokenClient(client_wrapper=self._client_wrapper)
409
+ return self._account_token
410
+
411
+ @property
412
+ def accounts(self):
413
+ if self._accounts is None:
414
+ from .resources.accounts.client import AsyncAccountsClient # noqa: E402
415
+
416
+ self._accounts = AsyncAccountsClient(client_wrapper=self._client_wrapper)
417
+ return self._accounts
418
+
419
+ @property
420
+ def async_passthrough(self):
421
+ if self._async_passthrough is None:
422
+ from .resources.async_passthrough.client import AsyncAsyncPassthroughClient # noqa: E402
423
+
424
+ self._async_passthrough = AsyncAsyncPassthroughClient(client_wrapper=self._client_wrapper)
425
+ return self._async_passthrough
426
+
427
+ @property
428
+ def audit_trail(self):
429
+ if self._audit_trail is None:
430
+ from .resources.audit_trail.client import AsyncAuditTrailClient # noqa: E402
431
+
432
+ self._audit_trail = AsyncAuditTrailClient(client_wrapper=self._client_wrapper)
433
+ return self._audit_trail
434
+
435
+ @property
436
+ def available_actions(self):
437
+ if self._available_actions is None:
438
+ from .resources.available_actions.client import AsyncAvailableActionsClient # noqa: E402
439
+
440
+ self._available_actions = AsyncAvailableActionsClient(client_wrapper=self._client_wrapper)
441
+ return self._available_actions
442
+
443
+ @property
444
+ def contacts(self):
445
+ if self._contacts is None:
446
+ from .resources.contacts.client import AsyncContactsClient # noqa: E402
447
+
448
+ self._contacts = AsyncContactsClient(client_wrapper=self._client_wrapper)
449
+ return self._contacts
450
+
451
+ @property
452
+ def custom_object_classes(self):
453
+ if self._custom_object_classes is None:
454
+ from .resources.custom_object_classes.client import AsyncCustomObjectClassesClient # noqa: E402
455
+
456
+ self._custom_object_classes = AsyncCustomObjectClassesClient(client_wrapper=self._client_wrapper)
457
+ return self._custom_object_classes
458
+
459
+ @property
460
+ def association_types(self):
461
+ if self._association_types is None:
462
+ from .resources.association_types.client import AsyncAssociationTypesClient # noqa: E402
463
+
464
+ self._association_types = AsyncAssociationTypesClient(client_wrapper=self._client_wrapper)
465
+ return self._association_types
466
+
467
+ @property
468
+ def custom_objects(self):
469
+ if self._custom_objects is None:
470
+ from .resources.custom_objects.client import AsyncCustomObjectsClient # noqa: E402
471
+
472
+ self._custom_objects = AsyncCustomObjectsClient(client_wrapper=self._client_wrapper)
473
+ return self._custom_objects
474
+
475
+ @property
476
+ def associations(self):
477
+ if self._associations is None:
478
+ from .resources.associations.client import AsyncAssociationsClient # noqa: E402
479
+
480
+ self._associations = AsyncAssociationsClient(client_wrapper=self._client_wrapper)
481
+ return self._associations
482
+
483
+ @property
484
+ def scopes(self):
485
+ if self._scopes is None:
486
+ from .resources.scopes.client import AsyncScopesClient # noqa: E402
487
+
488
+ self._scopes = AsyncScopesClient(client_wrapper=self._client_wrapper)
489
+ return self._scopes
490
+
491
+ @property
492
+ def delete_account(self):
493
+ if self._delete_account is None:
494
+ from .resources.delete_account.client import AsyncDeleteAccountClient # noqa: E402
495
+
496
+ self._delete_account = AsyncDeleteAccountClient(client_wrapper=self._client_wrapper)
497
+ return self._delete_account
498
+
499
+ @property
500
+ def engagement_types(self):
501
+ if self._engagement_types is None:
502
+ from .resources.engagement_types.client import AsyncEngagementTypesClient # noqa: E402
503
+
504
+ self._engagement_types = AsyncEngagementTypesClient(client_wrapper=self._client_wrapper)
505
+ return self._engagement_types
506
+
507
+ @property
508
+ def engagements(self):
509
+ if self._engagements is None:
510
+ from .resources.engagements.client import AsyncEngagementsClient # noqa: E402
511
+
512
+ self._engagements = AsyncEngagementsClient(client_wrapper=self._client_wrapper)
513
+ return self._engagements
514
+
515
+ @property
516
+ def field_mapping(self):
517
+ if self._field_mapping is None:
518
+ from .resources.field_mapping.client import AsyncFieldMappingClient # noqa: E402
519
+
520
+ self._field_mapping = AsyncFieldMappingClient(client_wrapper=self._client_wrapper)
521
+ return self._field_mapping
522
+
523
+ @property
524
+ def generate_key(self):
525
+ if self._generate_key is None:
526
+ from .resources.generate_key.client import AsyncGenerateKeyClient # noqa: E402
527
+
528
+ self._generate_key = AsyncGenerateKeyClient(client_wrapper=self._client_wrapper)
529
+ return self._generate_key
530
+
531
+ @property
532
+ def issues(self):
533
+ if self._issues is None:
534
+ from .resources.issues.client import AsyncIssuesClient # noqa: E402
535
+
536
+ self._issues = AsyncIssuesClient(client_wrapper=self._client_wrapper)
537
+ return self._issues
538
+
539
+ @property
540
+ def leads(self):
541
+ if self._leads is None:
542
+ from .resources.leads.client import AsyncLeadsClient # noqa: E402
543
+
544
+ self._leads = AsyncLeadsClient(client_wrapper=self._client_wrapper)
545
+ return self._leads
546
+
547
+ @property
548
+ def link_token(self):
549
+ if self._link_token is None:
550
+ from .resources.link_token.client import AsyncLinkTokenClient # noqa: E402
551
+
552
+ self._link_token = AsyncLinkTokenClient(client_wrapper=self._client_wrapper)
553
+ return self._link_token
554
+
555
+ @property
556
+ def linked_accounts(self):
557
+ if self._linked_accounts is None:
558
+ from .resources.linked_accounts.client import AsyncLinkedAccountsClient # noqa: E402
559
+
560
+ self._linked_accounts = AsyncLinkedAccountsClient(client_wrapper=self._client_wrapper)
561
+ return self._linked_accounts
562
+
563
+ @property
564
+ def notes(self):
565
+ if self._notes is None:
566
+ from .resources.notes.client import AsyncNotesClient # noqa: E402
567
+
568
+ self._notes = AsyncNotesClient(client_wrapper=self._client_wrapper)
569
+ return self._notes
570
+
571
+ @property
572
+ def opportunities(self):
573
+ if self._opportunities is None:
574
+ from .resources.opportunities.client import AsyncOpportunitiesClient # noqa: E402
575
+
576
+ self._opportunities = AsyncOpportunitiesClient(client_wrapper=self._client_wrapper)
577
+ return self._opportunities
578
+
579
+ @property
580
+ def passthrough(self):
581
+ if self._passthrough is None:
582
+ self._passthrough = resources_crm_resources_passthrough_client_AsyncPassthroughClient(
583
+ client_wrapper=self._client_wrapper
584
+ )
585
+ return self._passthrough
586
+
587
+ @property
588
+ def regenerate_key(self):
589
+ if self._regenerate_key is None:
590
+ from .resources.regenerate_key.client import AsyncRegenerateKeyClient # noqa: E402
591
+
592
+ self._regenerate_key = AsyncRegenerateKeyClient(client_wrapper=self._client_wrapper)
593
+ return self._regenerate_key
594
+
595
+ @property
596
+ def stages(self):
597
+ if self._stages is None:
598
+ from .resources.stages.client import AsyncStagesClient # noqa: E402
599
+
600
+ self._stages = AsyncStagesClient(client_wrapper=self._client_wrapper)
601
+ return self._stages
602
+
603
+ @property
604
+ def sync_status(self):
605
+ if self._sync_status is None:
606
+ from .resources.sync_status.client import AsyncSyncStatusClient # noqa: E402
607
+
608
+ self._sync_status = AsyncSyncStatusClient(client_wrapper=self._client_wrapper)
609
+ return self._sync_status
610
+
611
+ @property
612
+ def force_resync(self):
613
+ if self._force_resync is None:
614
+ from .resources.force_resync.client import AsyncForceResyncClient # noqa: E402
615
+
616
+ self._force_resync = AsyncForceResyncClient(client_wrapper=self._client_wrapper)
617
+ return self._force_resync
618
+
619
+ @property
620
+ def tasks(self):
621
+ if self._tasks is None:
622
+ from .resources.tasks.client import AsyncTasksClient # noqa: E402
623
+
624
+ self._tasks = AsyncTasksClient(client_wrapper=self._client_wrapper)
625
+ return self._tasks
626
+
627
+ @property
628
+ def users(self):
629
+ if self._users is None:
630
+ from .resources.users.client import AsyncUsersClient # noqa: E402
631
+
632
+ self._users = AsyncUsersClient(client_wrapper=self._client_wrapper)
633
+ return self._users
634
+
635
+ @property
636
+ def webhook_receivers(self):
637
+ if self._webhook_receivers is None:
638
+ from .resources.webhook_receivers.client import AsyncWebhookReceiversClient # noqa: E402
639
+
640
+ self._webhook_receivers = AsyncWebhookReceiversClient(client_wrapper=self._client_wrapper)
641
+ return self._webhook_receivers