hushscript 1.0.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 (187) hide show
  1. hushscript/__init__.py +97 -0
  2. hushscript/_client.py +687 -0
  3. hushscript/_clock.py +36 -0
  4. hushscript/_config.py +139 -0
  5. hushscript/_errors.py +563 -0
  6. hushscript/_guard.py +61 -0
  7. hushscript/_http.py +624 -0
  8. hushscript/_json.py +55 -0
  9. hushscript/_log.py +155 -0
  10. hushscript/_models.py +144 -0
  11. hushscript/_pacing.py +51 -0
  12. hushscript/_redact.py +140 -0
  13. hushscript/_response.py +67 -0
  14. hushscript/_retry.py +205 -0
  15. hushscript/_shape.py +197 -0
  16. hushscript/_shapes.py +248 -0
  17. hushscript/_version.py +1 -0
  18. hushscript/format.py +224 -0
  19. hushscript/generated/__init__.py +8 -0
  20. hushscript/generated/api/__init__.py +1 -0
  21. hushscript/generated/api/default/__init__.py +1 -0
  22. hushscript/generated/api/default/buy_minutes.py +248 -0
  23. hushscript/generated/api/default/claim_agent_account.py +238 -0
  24. hushscript/generated/api/default/complete_upload.py +238 -0
  25. hushscript/generated/api/default/create_agent_account_signup.py +261 -0
  26. hushscript/generated/api/default/create_setup_session.py +244 -0
  27. hushscript/generated/api/default/create_upload.py +225 -0
  28. hushscript/generated/api/default/get_account.py +169 -0
  29. hushscript/generated/api/default/get_job.py +198 -0
  30. hushscript/generated/api/default/get_org.py +169 -0
  31. hushscript/generated/api/default/get_transcript.py +226 -0
  32. hushscript/generated/api/default/get_transcription_context.py +173 -0
  33. hushscript/generated/api/default/get_upload_part_urls.py +246 -0
  34. hushscript/generated/api/default/heartbeat_upload.py +197 -0
  35. hushscript/generated/api/default/lift_transcript_hold.py +206 -0
  36. hushscript/generated/api/default/list_credit_ledger.py +229 -0
  37. hushscript/generated/api/default/list_deleted_transcripts.py +237 -0
  38. hushscript/generated/api/default/list_holds.py +233 -0
  39. hushscript/generated/api/default/list_jobs.py +249 -0
  40. hushscript/generated/api/default/list_org_audit.py +221 -0
  41. hushscript/generated/api/default/list_org_invoices.py +221 -0
  42. hushscript/generated/api/default/list_org_ledger.py +221 -0
  43. hushscript/generated/api/default/list_org_matters.py +247 -0
  44. hushscript/generated/api/default/list_org_members.py +221 -0
  45. hushscript/generated/api/default/list_org_transcripts.py +233 -0
  46. hushscript/generated/api/default/list_packs.py +169 -0
  47. hushscript/generated/api/default/list_saved_cards.py +169 -0
  48. hushscript/generated/api/default/list_transactions.py +225 -0
  49. hushscript/generated/api/default/list_transcripts.py +225 -0
  50. hushscript/generated/api/default/org_audit_csv.py +163 -0
  51. hushscript/generated/api/default/org_ledger_csv.py +163 -0
  52. hushscript/generated/api/default/org_usage_report.py +247 -0
  53. hushscript/generated/api/default/org_usage_report_csv.py +229 -0
  54. hushscript/generated/api/default/patch_org_member.py +237 -0
  55. hushscript/generated/api/default/place_transcript_hold.py +206 -0
  56. hushscript/generated/api/default/rotate_agent_credentials.py +177 -0
  57. hushscript/generated/api/default/schedule_org_custody.py +215 -0
  58. hushscript/generated/api/default/set_default_card.py +223 -0
  59. hushscript/generated/api/default/upload_part.py +249 -0
  60. hushscript/generated/catalog.py +138 -0
  61. hushscript/generated/client.py +282 -0
  62. hushscript/generated/errors.py +16 -0
  63. hushscript/generated/hints.py +28 -0
  64. hushscript/generated/models/__init__.py +193 -0
  65. hushscript/generated/models/account_response.py +114 -0
  66. hushscript/generated/models/active_hold.py +88 -0
  67. hushscript/generated/models/active_hold_kind.py +18 -0
  68. hushscript/generated/models/agent_claim_request.py +61 -0
  69. hushscript/generated/models/agent_claim_response.py +85 -0
  70. hushscript/generated/models/agent_credentials_rotate_response.py +101 -0
  71. hushscript/generated/models/agent_signup_request.py +118 -0
  72. hushscript/generated/models/agent_signup_request_agent.py +80 -0
  73. hushscript/generated/models/agent_signup_response.py +111 -0
  74. hushscript/generated/models/buy_minutes_body.py +89 -0
  75. hushscript/generated/models/card.py +132 -0
  76. hushscript/generated/models/cards_response.py +90 -0
  77. hushscript/generated/models/complete_upload_body.py +107 -0
  78. hushscript/generated/models/complete_upload_body_parts_type_0_item.py +69 -0
  79. hushscript/generated/models/context_dictionary.py +143 -0
  80. hushscript/generated/models/context_prompt_preset.py +118 -0
  81. hushscript/generated/models/create_setup_session_body.py +62 -0
  82. hushscript/generated/models/create_upload_body.py +254 -0
  83. hushscript/generated/models/create_upload_body_transcription_options_type_0.py +178 -0
  84. hushscript/generated/models/credit_ledger_entry.py +113 -0
  85. hushscript/generated/models/credit_ledger_response.py +90 -0
  86. hushscript/generated/models/deleted_transcript.py +148 -0
  87. hushscript/generated/models/deleted_transcript_cause.py +18 -0
  88. hushscript/generated/models/deleted_transcript_receipt_type_0.py +107 -0
  89. hushscript/generated/models/deleted_transcript_receipt_type_0_items_item.py +69 -0
  90. hushscript/generated/models/deleted_transcripts_response.py +90 -0
  91. hushscript/generated/models/dictionary_entry.py +123 -0
  92. hushscript/generated/models/dictionary_entry_category.py +37 -0
  93. hushscript/generated/models/error.py +155 -0
  94. hushscript/generated/models/error_details.py +94 -0
  95. hushscript/generated/models/get_upload_part_urls_response_200_type_0.py +108 -0
  96. hushscript/generated/models/heartbeat_upload_response_200.py +61 -0
  97. hushscript/generated/models/holds_response.py +90 -0
  98. hushscript/generated/models/job.py +309 -0
  99. hushscript/generated/models/job_failure_kind_type_1.py +16 -0
  100. hushscript/generated/models/job_failure_kind_type_2_type_1.py +16 -0
  101. hushscript/generated/models/job_failure_kind_type_3_type_1.py +16 -0
  102. hushscript/generated/models/job_list.py +90 -0
  103. hushscript/generated/models/lift_transcript_hold_response_200.py +61 -0
  104. hushscript/generated/models/list_jobs_active.py +17 -0
  105. hushscript/generated/models/list_org_matters_status.py +16 -0
  106. hushscript/generated/models/options_summary.py +135 -0
  107. hushscript/generated/models/org_audit_entry.py +105 -0
  108. hushscript/generated/models/org_audit_response.py +90 -0
  109. hushscript/generated/models/org_invoice.py +175 -0
  110. hushscript/generated/models/org_invoices_response.py +90 -0
  111. hushscript/generated/models/org_ledger_entry.py +155 -0
  112. hushscript/generated/models/org_ledger_response.py +90 -0
  113. hushscript/generated/models/org_matter.py +79 -0
  114. hushscript/generated/models/org_matter_status.py +16 -0
  115. hushscript/generated/models/org_matters_response.py +75 -0
  116. hushscript/generated/models/org_member.py +123 -0
  117. hushscript/generated/models/org_members_response.py +90 -0
  118. hushscript/generated/models/org_summary_response.py +482 -0
  119. hushscript/generated/models/org_transcript.py +103 -0
  120. hushscript/generated/models/org_transcripts_response.py +90 -0
  121. hushscript/generated/models/org_usage_report_csv_group_by.py +17 -0
  122. hushscript/generated/models/org_usage_report_group_by.py +17 -0
  123. hushscript/generated/models/org_usage_response.py +112 -0
  124. hushscript/generated/models/org_usage_response_group_by.py +17 -0
  125. hushscript/generated/models/org_usage_row.py +86 -0
  126. hushscript/generated/models/pack.py +107 -0
  127. hushscript/generated/models/packs_response.py +75 -0
  128. hushscript/generated/models/patch_org_member_body.py +102 -0
  129. hushscript/generated/models/patch_org_member_response_200.py +61 -0
  130. hushscript/generated/models/place_transcript_hold_response_200.py +61 -0
  131. hushscript/generated/models/presigned_part_url.py +69 -0
  132. hushscript/generated/models/purchase_response.py +76 -0
  133. hushscript/generated/models/schedule_org_custody_body.py +66 -0
  134. hushscript/generated/models/schedule_org_custody_body_custody.py +17 -0
  135. hushscript/generated/models/schedule_org_custody_response_200.py +69 -0
  136. hushscript/generated/models/set_default_card_body.py +61 -0
  137. hushscript/generated/models/set_default_card_response_200.py +61 -0
  138. hushscript/generated/models/setup_session_response.py +77 -0
  139. hushscript/generated/models/transaction.py +183 -0
  140. hushscript/generated/models/transactions_response.py +98 -0
  141. hushscript/generated/models/transcript_detail.py +194 -0
  142. hushscript/generated/models/transcript_detail_speaker_names.py +47 -0
  143. hushscript/generated/models/transcript_envelope.py +89 -0
  144. hushscript/generated/models/transcript_envelope_translations.py +62 -0
  145. hushscript/generated/models/transcript_language.py +75 -0
  146. hushscript/generated/models/transcript_list.py +90 -0
  147. hushscript/generated/models/transcript_list_row.py +152 -0
  148. hushscript/generated/models/transcript_list_row_insights_state.py +20 -0
  149. hushscript/generated/models/transcription_context_response.py +95 -0
  150. hushscript/generated/models/upload_complete_response.py +100 -0
  151. hushscript/generated/models/upload_create_response.py +148 -0
  152. hushscript/generated/models/upload_create_response_funding.py +16 -0
  153. hushscript/generated/models/upload_create_response_upload_type_0.py +108 -0
  154. hushscript/generated/models/upload_limits.py +86 -0
  155. hushscript/generated/models/upload_part_response_200.py +69 -0
  156. hushscript/generated/models/utterance.py +85 -0
  157. hushscript/generated/scopes.py +42 -0
  158. hushscript/generated/types.py +54 -0
  159. hushscript/money.py +79 -0
  160. hushscript/paginate.py +78 -0
  161. hushscript/py.typed +0 -0
  162. hushscript/resources/__init__.py +1 -0
  163. hushscript/resources/_params.py +33 -0
  164. hushscript/resources/account.py +121 -0
  165. hushscript/resources/agent.py +421 -0
  166. hushscript/resources/billing.py +567 -0
  167. hushscript/resources/jobs.py +105 -0
  168. hushscript/resources/transcripts.py +209 -0
  169. hushscript/transcribe/__init__.py +1 -0
  170. hushscript/transcribe/apipeline.py +234 -0
  171. hushscript/transcribe/aupload.py +197 -0
  172. hushscript/transcribe/heartbeat.py +78 -0
  173. hushscript/transcribe/pipeline.py +312 -0
  174. hushscript/transcribe/preflight.py +272 -0
  175. hushscript/transcribe/probe.py +185 -0
  176. hushscript/transcribe/resume.py +115 -0
  177. hushscript/transcribe/segment.py +23 -0
  178. hushscript/transcribe/session.py +34 -0
  179. hushscript/transcribe/sniff.py +30 -0
  180. hushscript/transcribe/source.py +218 -0
  181. hushscript/transcribe/upload.py +498 -0
  182. hushscript/transcribe/wait.py +124 -0
  183. hushscript/transcript.py +197 -0
  184. hushscript-1.0.0.dist-info/METADATA +502 -0
  185. hushscript-1.0.0.dist-info/RECORD +187 -0
  186. hushscript-1.0.0.dist-info/WHEEL +4 -0
  187. hushscript-1.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,249 @@
1
+ from http import HTTPStatus
2
+ from typing import Any
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.error import Error
9
+ from ...models.job_list import JobList
10
+ from ...models.list_jobs_active import ListJobsActive
11
+ from ...types import UNSET, Response, Unset
12
+
13
+
14
+ def _get_kwargs(
15
+ *,
16
+ active: ListJobsActive | Unset = UNSET,
17
+ cursor: str | Unset = UNSET,
18
+ limit: int | Unset = 50,
19
+ ) -> dict[str, Any]:
20
+
21
+ params: dict[str, Any] = {}
22
+
23
+ json_active: str | Unset = UNSET
24
+ if not isinstance(active, Unset):
25
+ json_active = active
26
+
27
+ params["active"] = json_active
28
+
29
+ params["cursor"] = cursor
30
+
31
+ params["limit"] = limit
32
+
33
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
34
+
35
+ _kwargs: dict[str, Any] = {
36
+ "method": "get",
37
+ "url": "/v1/jobs",
38
+ "params": params,
39
+ }
40
+
41
+ return _kwargs
42
+
43
+
44
+ def _parse_response(
45
+ *, client: AuthenticatedClient | Client, response: httpx.Response
46
+ ) -> Error | JobList | None:
47
+ if response.status_code == 200:
48
+ response_200 = JobList.from_dict(response.json())
49
+
50
+ return response_200
51
+
52
+ if response.status_code == 400:
53
+ response_400 = Error.from_dict(response.json())
54
+
55
+ return response_400
56
+
57
+ if response.status_code == 401:
58
+ response_401 = Error.from_dict(response.json())
59
+
60
+ return response_401
61
+
62
+ if response.status_code == 403:
63
+ response_403 = Error.from_dict(response.json())
64
+
65
+ return response_403
66
+
67
+ if response.status_code == 429:
68
+ response_429 = Error.from_dict(response.json())
69
+
70
+ return response_429
71
+
72
+ if response.status_code == 500:
73
+ response_500 = Error.from_dict(response.json())
74
+
75
+ return response_500
76
+
77
+ if client.raise_on_unexpected_status:
78
+ raise errors.UnexpectedStatus(response.status_code, response.content)
79
+ else:
80
+ return None
81
+
82
+
83
+ def _build_response(
84
+ *, client: AuthenticatedClient | Client, response: httpx.Response
85
+ ) -> Response[Error | JobList]:
86
+ return Response(
87
+ status_code=HTTPStatus(response.status_code),
88
+ content=response.content,
89
+ headers=response.headers,
90
+ parsed=_parse_response(client=client, response=response),
91
+ )
92
+
93
+
94
+ def sync_detailed(
95
+ *,
96
+ client: AuthenticatedClient,
97
+ active: ListJobsActive | Unset = UNSET,
98
+ cursor: str | Unset = UNSET,
99
+ limit: int | Unset = 50,
100
+ ) -> Response[Error | JobList]:
101
+ """List the account's transcription jobs
102
+
103
+ Returns a page of pipeline jobs for the caller's account, newest first. Jobs accumulate for the
104
+ lifetime of the account, not just while in flight, so this list pages: pass the next_cursor value
105
+ from one page as the cursor parameter of the next request to page forward; the cursor is opaque and
106
+ this API refuses one it did not mint rather than silently restarting at page one, since a caller
107
+ that trusted a silent restart would believe it had paged forward when it had not. Pass active=1 to
108
+ see only jobs that have not yet reached a terminal state.
109
+
110
+ Args:
111
+ active (ListJobsActive | Unset):
112
+ cursor (str | Unset):
113
+ limit (int | Unset): Default: 50.
114
+
115
+ Raises:
116
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
117
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
118
+
119
+ Returns:
120
+ Response[Error | JobList]
121
+ """
122
+
123
+ kwargs = _get_kwargs(
124
+ active=active,
125
+ cursor=cursor,
126
+ limit=limit,
127
+ )
128
+
129
+ response = client.get_httpx_client().request(
130
+ **kwargs,
131
+ )
132
+
133
+ return _build_response(client=client, response=response)
134
+
135
+
136
+ def sync(
137
+ *,
138
+ client: AuthenticatedClient,
139
+ active: ListJobsActive | Unset = UNSET,
140
+ cursor: str | Unset = UNSET,
141
+ limit: int | Unset = 50,
142
+ ) -> Error | JobList | None:
143
+ """List the account's transcription jobs
144
+
145
+ Returns a page of pipeline jobs for the caller's account, newest first. Jobs accumulate for the
146
+ lifetime of the account, not just while in flight, so this list pages: pass the next_cursor value
147
+ from one page as the cursor parameter of the next request to page forward; the cursor is opaque and
148
+ this API refuses one it did not mint rather than silently restarting at page one, since a caller
149
+ that trusted a silent restart would believe it had paged forward when it had not. Pass active=1 to
150
+ see only jobs that have not yet reached a terminal state.
151
+
152
+ Args:
153
+ active (ListJobsActive | Unset):
154
+ cursor (str | Unset):
155
+ limit (int | Unset): Default: 50.
156
+
157
+ Raises:
158
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
159
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
160
+
161
+ Returns:
162
+ Error | JobList
163
+ """
164
+
165
+ return sync_detailed(
166
+ client=client,
167
+ active=active,
168
+ cursor=cursor,
169
+ limit=limit,
170
+ ).parsed
171
+
172
+
173
+ async def asyncio_detailed(
174
+ *,
175
+ client: AuthenticatedClient,
176
+ active: ListJobsActive | Unset = UNSET,
177
+ cursor: str | Unset = UNSET,
178
+ limit: int | Unset = 50,
179
+ ) -> Response[Error | JobList]:
180
+ """List the account's transcription jobs
181
+
182
+ Returns a page of pipeline jobs for the caller's account, newest first. Jobs accumulate for the
183
+ lifetime of the account, not just while in flight, so this list pages: pass the next_cursor value
184
+ from one page as the cursor parameter of the next request to page forward; the cursor is opaque and
185
+ this API refuses one it did not mint rather than silently restarting at page one, since a caller
186
+ that trusted a silent restart would believe it had paged forward when it had not. Pass active=1 to
187
+ see only jobs that have not yet reached a terminal state.
188
+
189
+ Args:
190
+ active (ListJobsActive | Unset):
191
+ cursor (str | Unset):
192
+ limit (int | Unset): Default: 50.
193
+
194
+ Raises:
195
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
196
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
197
+
198
+ Returns:
199
+ Response[Error | JobList]
200
+ """
201
+
202
+ kwargs = _get_kwargs(
203
+ active=active,
204
+ cursor=cursor,
205
+ limit=limit,
206
+ )
207
+
208
+ response = await client.get_async_httpx_client().request(**kwargs)
209
+
210
+ return _build_response(client=client, response=response)
211
+
212
+
213
+ async def asyncio(
214
+ *,
215
+ client: AuthenticatedClient,
216
+ active: ListJobsActive | Unset = UNSET,
217
+ cursor: str | Unset = UNSET,
218
+ limit: int | Unset = 50,
219
+ ) -> Error | JobList | None:
220
+ """List the account's transcription jobs
221
+
222
+ Returns a page of pipeline jobs for the caller's account, newest first. Jobs accumulate for the
223
+ lifetime of the account, not just while in flight, so this list pages: pass the next_cursor value
224
+ from one page as the cursor parameter of the next request to page forward; the cursor is opaque and
225
+ this API refuses one it did not mint rather than silently restarting at page one, since a caller
226
+ that trusted a silent restart would believe it had paged forward when it had not. Pass active=1 to
227
+ see only jobs that have not yet reached a terminal state.
228
+
229
+ Args:
230
+ active (ListJobsActive | Unset):
231
+ cursor (str | Unset):
232
+ limit (int | Unset): Default: 50.
233
+
234
+ Raises:
235
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
236
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
237
+
238
+ Returns:
239
+ Error | JobList
240
+ """
241
+
242
+ return (
243
+ await asyncio_detailed(
244
+ client=client,
245
+ active=active,
246
+ cursor=cursor,
247
+ limit=limit,
248
+ )
249
+ ).parsed
@@ -0,0 +1,221 @@
1
+ from http import HTTPStatus
2
+ from typing import Any
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.error import Error
9
+ from ...models.org_audit_response import OrgAuditResponse
10
+ from ...types import UNSET, Response, Unset
11
+
12
+
13
+ def _get_kwargs(
14
+ *,
15
+ cursor: str | Unset = UNSET,
16
+ limit: int | Unset = 50,
17
+ ) -> dict[str, Any]:
18
+
19
+ params: dict[str, Any] = {}
20
+
21
+ params["cursor"] = cursor
22
+
23
+ params["limit"] = limit
24
+
25
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
26
+
27
+ _kwargs: dict[str, Any] = {
28
+ "method": "get",
29
+ "url": "/v1/org/audit",
30
+ "params": params,
31
+ }
32
+
33
+ return _kwargs
34
+
35
+
36
+ def _parse_response(
37
+ *, client: AuthenticatedClient | Client, response: httpx.Response
38
+ ) -> Error | OrgAuditResponse | None:
39
+ if response.status_code == 200:
40
+ response_200 = OrgAuditResponse.from_dict(response.json())
41
+
42
+ return response_200
43
+
44
+ if response.status_code == 400:
45
+ response_400 = Error.from_dict(response.json())
46
+
47
+ return response_400
48
+
49
+ if response.status_code == 401:
50
+ response_401 = Error.from_dict(response.json())
51
+
52
+ return response_401
53
+
54
+ if response.status_code == 403:
55
+ response_403 = Error.from_dict(response.json())
56
+
57
+ return response_403
58
+
59
+ if response.status_code == 429:
60
+ response_429 = Error.from_dict(response.json())
61
+
62
+ return response_429
63
+
64
+ if response.status_code == 500:
65
+ response_500 = Error.from_dict(response.json())
66
+
67
+ return response_500
68
+
69
+ if client.raise_on_unexpected_status:
70
+ raise errors.UnexpectedStatus(response.status_code, response.content)
71
+ else:
72
+ return None
73
+
74
+
75
+ def _build_response(
76
+ *, client: AuthenticatedClient | Client, response: httpx.Response
77
+ ) -> Response[Error | OrgAuditResponse]:
78
+ return Response(
79
+ status_code=HTTPStatus(response.status_code),
80
+ content=response.content,
81
+ headers=response.headers,
82
+ parsed=_parse_response(client=client, response=response),
83
+ )
84
+
85
+
86
+ def sync_detailed(
87
+ *,
88
+ client: AuthenticatedClient,
89
+ cursor: str | Unset = UNSET,
90
+ limit: int | Unset = 50,
91
+ ) -> Response[Error | OrgAuditResponse]:
92
+ """List the caller's organization's audit log
93
+
94
+ Returns a page of the caller's organization's admin audit log, newest first. Org admin only. Pass
95
+ the next_cursor value from one page as the cursor parameter of the next request to page further
96
+ back; the cursor is opaque and this API refuses one it did not mint rather than silently restarting
97
+ at page one.
98
+
99
+ Args:
100
+ cursor (str | Unset):
101
+ limit (int | Unset): Default: 50.
102
+
103
+ Raises:
104
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
105
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
106
+
107
+ Returns:
108
+ Response[Error | OrgAuditResponse]
109
+ """
110
+
111
+ kwargs = _get_kwargs(
112
+ cursor=cursor,
113
+ limit=limit,
114
+ )
115
+
116
+ response = client.get_httpx_client().request(
117
+ **kwargs,
118
+ )
119
+
120
+ return _build_response(client=client, response=response)
121
+
122
+
123
+ def sync(
124
+ *,
125
+ client: AuthenticatedClient,
126
+ cursor: str | Unset = UNSET,
127
+ limit: int | Unset = 50,
128
+ ) -> Error | OrgAuditResponse | None:
129
+ """List the caller's organization's audit log
130
+
131
+ Returns a page of the caller's organization's admin audit log, newest first. Org admin only. Pass
132
+ the next_cursor value from one page as the cursor parameter of the next request to page further
133
+ back; the cursor is opaque and this API refuses one it did not mint rather than silently restarting
134
+ at page one.
135
+
136
+ Args:
137
+ cursor (str | Unset):
138
+ limit (int | Unset): Default: 50.
139
+
140
+ Raises:
141
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
142
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
143
+
144
+ Returns:
145
+ Error | OrgAuditResponse
146
+ """
147
+
148
+ return sync_detailed(
149
+ client=client,
150
+ cursor=cursor,
151
+ limit=limit,
152
+ ).parsed
153
+
154
+
155
+ async def asyncio_detailed(
156
+ *,
157
+ client: AuthenticatedClient,
158
+ cursor: str | Unset = UNSET,
159
+ limit: int | Unset = 50,
160
+ ) -> Response[Error | OrgAuditResponse]:
161
+ """List the caller's organization's audit log
162
+
163
+ Returns a page of the caller's organization's admin audit log, newest first. Org admin only. Pass
164
+ the next_cursor value from one page as the cursor parameter of the next request to page further
165
+ back; the cursor is opaque and this API refuses one it did not mint rather than silently restarting
166
+ at page one.
167
+
168
+ Args:
169
+ cursor (str | Unset):
170
+ limit (int | Unset): Default: 50.
171
+
172
+ Raises:
173
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
174
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
175
+
176
+ Returns:
177
+ Response[Error | OrgAuditResponse]
178
+ """
179
+
180
+ kwargs = _get_kwargs(
181
+ cursor=cursor,
182
+ limit=limit,
183
+ )
184
+
185
+ response = await client.get_async_httpx_client().request(**kwargs)
186
+
187
+ return _build_response(client=client, response=response)
188
+
189
+
190
+ async def asyncio(
191
+ *,
192
+ client: AuthenticatedClient,
193
+ cursor: str | Unset = UNSET,
194
+ limit: int | Unset = 50,
195
+ ) -> Error | OrgAuditResponse | None:
196
+ """List the caller's organization's audit log
197
+
198
+ Returns a page of the caller's organization's admin audit log, newest first. Org admin only. Pass
199
+ the next_cursor value from one page as the cursor parameter of the next request to page further
200
+ back; the cursor is opaque and this API refuses one it did not mint rather than silently restarting
201
+ at page one.
202
+
203
+ Args:
204
+ cursor (str | Unset):
205
+ limit (int | Unset): Default: 50.
206
+
207
+ Raises:
208
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
209
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
210
+
211
+ Returns:
212
+ Error | OrgAuditResponse
213
+ """
214
+
215
+ return (
216
+ await asyncio_detailed(
217
+ client=client,
218
+ cursor=cursor,
219
+ limit=limit,
220
+ )
221
+ ).parsed
@@ -0,0 +1,221 @@
1
+ from http import HTTPStatus
2
+ from typing import Any
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.error import Error
9
+ from ...models.org_invoices_response import OrgInvoicesResponse
10
+ from ...types import UNSET, Response, Unset
11
+
12
+
13
+ def _get_kwargs(
14
+ *,
15
+ cursor: str | Unset = UNSET,
16
+ limit: int | Unset = 50,
17
+ ) -> dict[str, Any]:
18
+
19
+ params: dict[str, Any] = {}
20
+
21
+ params["cursor"] = cursor
22
+
23
+ params["limit"] = limit
24
+
25
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
26
+
27
+ _kwargs: dict[str, Any] = {
28
+ "method": "get",
29
+ "url": "/v1/org/invoices",
30
+ "params": params,
31
+ }
32
+
33
+ return _kwargs
34
+
35
+
36
+ def _parse_response(
37
+ *, client: AuthenticatedClient | Client, response: httpx.Response
38
+ ) -> Error | OrgInvoicesResponse | None:
39
+ if response.status_code == 200:
40
+ response_200 = OrgInvoicesResponse.from_dict(response.json())
41
+
42
+ return response_200
43
+
44
+ if response.status_code == 400:
45
+ response_400 = Error.from_dict(response.json())
46
+
47
+ return response_400
48
+
49
+ if response.status_code == 401:
50
+ response_401 = Error.from_dict(response.json())
51
+
52
+ return response_401
53
+
54
+ if response.status_code == 403:
55
+ response_403 = Error.from_dict(response.json())
56
+
57
+ return response_403
58
+
59
+ if response.status_code == 429:
60
+ response_429 = Error.from_dict(response.json())
61
+
62
+ return response_429
63
+
64
+ if response.status_code == 500:
65
+ response_500 = Error.from_dict(response.json())
66
+
67
+ return response_500
68
+
69
+ if client.raise_on_unexpected_status:
70
+ raise errors.UnexpectedStatus(response.status_code, response.content)
71
+ else:
72
+ return None
73
+
74
+
75
+ def _build_response(
76
+ *, client: AuthenticatedClient | Client, response: httpx.Response
77
+ ) -> Response[Error | OrgInvoicesResponse]:
78
+ return Response(
79
+ status_code=HTTPStatus(response.status_code),
80
+ content=response.content,
81
+ headers=response.headers,
82
+ parsed=_parse_response(client=client, response=response),
83
+ )
84
+
85
+
86
+ def sync_detailed(
87
+ *,
88
+ client: AuthenticatedClient,
89
+ cursor: str | Unset = UNSET,
90
+ limit: int | Unset = 50,
91
+ ) -> Response[Error | OrgInvoicesResponse]:
92
+ """List the caller's organization invoices
93
+
94
+ Returns a page of the caller's organization's plan and pack invoices, newest first. Org admin only.
95
+ Pass the next_cursor value from one page as the cursor parameter of the next request to page further
96
+ back; the cursor is opaque and this API refuses one it did not mint rather than silently restarting
97
+ at page one.
98
+
99
+ Args:
100
+ cursor (str | Unset):
101
+ limit (int | Unset): Default: 50.
102
+
103
+ Raises:
104
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
105
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
106
+
107
+ Returns:
108
+ Response[Error | OrgInvoicesResponse]
109
+ """
110
+
111
+ kwargs = _get_kwargs(
112
+ cursor=cursor,
113
+ limit=limit,
114
+ )
115
+
116
+ response = client.get_httpx_client().request(
117
+ **kwargs,
118
+ )
119
+
120
+ return _build_response(client=client, response=response)
121
+
122
+
123
+ def sync(
124
+ *,
125
+ client: AuthenticatedClient,
126
+ cursor: str | Unset = UNSET,
127
+ limit: int | Unset = 50,
128
+ ) -> Error | OrgInvoicesResponse | None:
129
+ """List the caller's organization invoices
130
+
131
+ Returns a page of the caller's organization's plan and pack invoices, newest first. Org admin only.
132
+ Pass the next_cursor value from one page as the cursor parameter of the next request to page further
133
+ back; the cursor is opaque and this API refuses one it did not mint rather than silently restarting
134
+ at page one.
135
+
136
+ Args:
137
+ cursor (str | Unset):
138
+ limit (int | Unset): Default: 50.
139
+
140
+ Raises:
141
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
142
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
143
+
144
+ Returns:
145
+ Error | OrgInvoicesResponse
146
+ """
147
+
148
+ return sync_detailed(
149
+ client=client,
150
+ cursor=cursor,
151
+ limit=limit,
152
+ ).parsed
153
+
154
+
155
+ async def asyncio_detailed(
156
+ *,
157
+ client: AuthenticatedClient,
158
+ cursor: str | Unset = UNSET,
159
+ limit: int | Unset = 50,
160
+ ) -> Response[Error | OrgInvoicesResponse]:
161
+ """List the caller's organization invoices
162
+
163
+ Returns a page of the caller's organization's plan and pack invoices, newest first. Org admin only.
164
+ Pass the next_cursor value from one page as the cursor parameter of the next request to page further
165
+ back; the cursor is opaque and this API refuses one it did not mint rather than silently restarting
166
+ at page one.
167
+
168
+ Args:
169
+ cursor (str | Unset):
170
+ limit (int | Unset): Default: 50.
171
+
172
+ Raises:
173
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
174
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
175
+
176
+ Returns:
177
+ Response[Error | OrgInvoicesResponse]
178
+ """
179
+
180
+ kwargs = _get_kwargs(
181
+ cursor=cursor,
182
+ limit=limit,
183
+ )
184
+
185
+ response = await client.get_async_httpx_client().request(**kwargs)
186
+
187
+ return _build_response(client=client, response=response)
188
+
189
+
190
+ async def asyncio(
191
+ *,
192
+ client: AuthenticatedClient,
193
+ cursor: str | Unset = UNSET,
194
+ limit: int | Unset = 50,
195
+ ) -> Error | OrgInvoicesResponse | None:
196
+ """List the caller's organization invoices
197
+
198
+ Returns a page of the caller's organization's plan and pack invoices, newest first. Org admin only.
199
+ Pass the next_cursor value from one page as the cursor parameter of the next request to page further
200
+ back; the cursor is opaque and this API refuses one it did not mint rather than silently restarting
201
+ at page one.
202
+
203
+ Args:
204
+ cursor (str | Unset):
205
+ limit (int | Unset): Default: 50.
206
+
207
+ Raises:
208
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
209
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
210
+
211
+ Returns:
212
+ Error | OrgInvoicesResponse
213
+ """
214
+
215
+ return (
216
+ await asyncio_detailed(
217
+ client=client,
218
+ cursor=cursor,
219
+ limit=limit,
220
+ )
221
+ ).parsed