paid-python 0.6.0__py3-none-any.whl → 1.0.0a1__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.
- paid/__init__.py +65 -95
- paid/client.py +17 -494
- paid/contacts/client.py +415 -133
- paid/contacts/raw_client.py +1046 -118
- paid/core/client_wrapper.py +9 -10
- paid/customers/client.py +270 -566
- paid/customers/raw_client.py +731 -537
- paid/environment.py +1 -1
- paid/errors/bad_request_error.py +2 -2
- paid/errors/forbidden_error.py +2 -2
- paid/errors/internal_server_error.py +2 -2
- paid/errors/not_found_error.py +2 -2
- paid/invoices/client.py +369 -0
- paid/invoices/raw_client.py +692 -0
- paid/orders/__init__.py +0 -3
- paid/orders/client.py +371 -128
- paid/orders/raw_client.py +829 -121
- paid/products/__init__.py +0 -3
- paid/products/client.py +129 -265
- paid/products/raw_client.py +563 -233
- paid/signals/client.py +130 -0
- paid/signals/raw_client.py +190 -0
- paid/tracing/autoinstrumentation.py +12 -6
- paid/tracing/context_manager.py +2 -6
- paid/tracing/distributed_tracing.py +3 -3
- paid/tracing/signal.py +3 -3
- paid/tracing/wrappers/openai_agents/openaiAgentsHook.py +1 -1
- paid/types/__init__.py +62 -86
- paid/types/attribution.py +8 -0
- paid/types/{agent_attribute.py → bulk_signals_response.py} +4 -5
- paid/types/contact.py +12 -20
- paid/types/{address.py → contact_billing_address.py} +6 -7
- paid/types/{traces_response.py → contact_list_response.py} +5 -9
- paid/types/customer.py +15 -22
- paid/types/customer_attribution.py +8 -0
- paid/types/customer_billing_address.py +26 -0
- paid/types/{usage_summary_order.py → customer_by_external_id.py} +3 -5
- paid/types/{usage_summary_order_line.py → customer_by_id.py} +3 -5
- paid/types/customer_creation_state.py +5 -0
- paid/types/customer_list_response.py +22 -0
- paid/types/empty_response.py +17 -0
- paid/types/{error.py → error_response.py} +4 -7
- paid/types/invoice.py +57 -0
- paid/types/invoice_line.py +42 -0
- paid/types/invoice_line_payment_status.py +7 -0
- paid/types/invoice_lines_response.py +22 -0
- paid/types/invoice_list_response.py +22 -0
- paid/types/invoice_payment_status.py +5 -0
- paid/types/invoice_source.py +5 -0
- paid/types/invoice_status.py +7 -0
- paid/types/invoice_tax_status.py +7 -0
- paid/types/order.py +30 -29
- paid/types/order_creation_state.py +5 -0
- paid/types/order_line.py +6 -24
- paid/types/order_lines_response.py +22 -0
- paid/types/order_list_response.py +22 -0
- paid/types/pagination.py +24 -0
- paid/types/product.py +4 -29
- paid/types/{tier.py → product_by_external_id.py} +5 -4
- paid/types/{cost_amount.py → product_by_id.py} +5 -12
- paid/types/product_list_response.py +22 -0
- paid/types/signal.py +8 -34
- paid/types/{agent.py → update_contact_request.py} +10 -11
- paid/types/update_customer_request.py +38 -0
- paid/types/{product_update.py → update_product_request.py} +2 -12
- {paid_python-0.6.0.dist-info → paid_python-1.0.0a1.dist-info}/METADATA +27 -11
- paid_python-1.0.0a1.dist-info/RECORD +110 -0
- opentelemetry/instrumentation/openai/__init__.py +0 -54
- opentelemetry/instrumentation/openai/shared/__init__.py +0 -399
- opentelemetry/instrumentation/openai/shared/audio_wrappers.py +0 -247
- opentelemetry/instrumentation/openai/shared/chat_wrappers.py +0 -1192
- opentelemetry/instrumentation/openai/shared/completion_wrappers.py +0 -292
- opentelemetry/instrumentation/openai/shared/config.py +0 -15
- opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py +0 -311
- opentelemetry/instrumentation/openai/shared/event_emitter.py +0 -108
- opentelemetry/instrumentation/openai/shared/event_models.py +0 -41
- opentelemetry/instrumentation/openai/shared/image_gen_wrappers.py +0 -68
- opentelemetry/instrumentation/openai/shared/span_utils.py +0 -0
- opentelemetry/instrumentation/openai/utils.py +0 -213
- opentelemetry/instrumentation/openai/v0/__init__.py +0 -176
- opentelemetry/instrumentation/openai/v1/__init__.py +0 -394
- opentelemetry/instrumentation/openai/v1/assistant_wrappers.py +0 -329
- opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py +0 -134
- opentelemetry/instrumentation/openai/v1/responses_wrappers.py +0 -1113
- opentelemetry/instrumentation/openai/version.py +0 -1
- paid/agents/client.py +0 -880
- paid/agents/raw_client.py +0 -785
- paid/orders/lines/client.py +0 -144
- paid/orders/lines/raw_client.py +0 -129
- paid/plans/__init__.py +0 -4
- paid/plans/client.py +0 -332
- paid/plans/raw_client.py +0 -464
- paid/products/types/__init__.py +0 -7
- paid/products/types/product_create_type.py +0 -5
- paid/traces/__init__.py +0 -4
- paid/traces/client.py +0 -218
- paid/traces/raw_client.py +0 -226
- paid/types/agent_price_point.py +0 -27
- paid/types/agent_price_point_tiers.py +0 -23
- paid/types/agent_update.py +0 -29
- paid/types/api_error.py +0 -29
- paid/types/billing_frequency.py +0 -5
- paid/types/charge_type.py +0 -5
- paid/types/cost_trace.py +0 -55
- paid/types/cost_traces_response.py +0 -26
- paid/types/creation_source.py +0 -5
- paid/types/creation_state.py +0 -5
- paid/types/customer_update.py +0 -40
- paid/types/entitlement_usage.py +0 -48
- paid/types/order_line_attribute.py +0 -27
- paid/types/order_line_attribute_create_one.py +0 -5
- paid/types/order_line_attribute_pricing.py +0 -33
- paid/types/order_line_create.py +0 -72
- paid/types/pagination_meta.py +0 -84
- paid/types/plan.py +0 -81
- paid/types/plan_group.py +0 -60
- paid/types/plan_plan_products_item.py +0 -35
- paid/types/plan_plan_products_item_plan_product_attribute_item.py +0 -34
- paid/types/price_point.py +0 -25
- paid/types/pricing.py +0 -31
- paid/types/pricing_model_type.py +0 -7
- paid/types/product_type.py +0 -5
- paid/types/product_update_type.py +0 -5
- paid/types/salutation.py +0 -5
- paid/types/signal_v_2.py +0 -56
- paid/types/tax_exempt_status.py +0 -5
- paid/types/trace.py +0 -69
- paid/types/usage_pagination_meta.py +0 -43
- paid/types/usage_summaries_response.py +0 -26
- paid/types/usage_summary.py +0 -121
- paid/usage/__init__.py +0 -7
- paid/usage/client.py +0 -321
- paid/usage/raw_client.py +0 -387
- paid/usage/types/__init__.py +0 -7
- paid/usage/types/usage_check_usage_response.py +0 -53
- paid_python-0.6.0.dist-info/RECORD +0 -153
- /paid/{agents → invoices}/__init__.py +0 -0
- /paid/{orders/lines → signals}/__init__.py +0 -0
- {paid_python-0.6.0.dist-info → paid_python-1.0.0a1.dist-info}/LICENSE +0 -0
- {paid_python-0.6.0.dist-info → paid_python-1.0.0a1.dist-info}/WHEEL +0 -0
paid/environment.py
CHANGED
paid/errors/bad_request_error.py
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
5
|
from ..core.api_error import ApiError
|
|
6
|
-
from ..types.
|
|
6
|
+
from ..types.error_response import ErrorResponse
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class BadRequestError(ApiError):
|
|
10
|
-
def __init__(self, body:
|
|
10
|
+
def __init__(self, body: ErrorResponse, headers: typing.Optional[typing.Dict[str, str]] = None):
|
|
11
11
|
super().__init__(status_code=400, headers=headers, body=body)
|
paid/errors/forbidden_error.py
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
5
|
from ..core.api_error import ApiError
|
|
6
|
-
from ..types.
|
|
6
|
+
from ..types.error_response import ErrorResponse
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class ForbiddenError(ApiError):
|
|
10
|
-
def __init__(self, body:
|
|
10
|
+
def __init__(self, body: ErrorResponse, headers: typing.Optional[typing.Dict[str, str]] = None):
|
|
11
11
|
super().__init__(status_code=403, headers=headers, body=body)
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
5
|
from ..core.api_error import ApiError
|
|
6
|
-
from ..types.
|
|
6
|
+
from ..types.error_response import ErrorResponse
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class InternalServerError(ApiError):
|
|
10
|
-
def __init__(self, body:
|
|
10
|
+
def __init__(self, body: ErrorResponse, headers: typing.Optional[typing.Dict[str, str]] = None):
|
|
11
11
|
super().__init__(status_code=500, headers=headers, body=body)
|
paid/errors/not_found_error.py
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
import typing
|
|
4
4
|
|
|
5
5
|
from ..core.api_error import ApiError
|
|
6
|
-
from ..types.
|
|
6
|
+
from ..types.error_response import ErrorResponse
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class NotFoundError(ApiError):
|
|
10
|
-
def __init__(self, body:
|
|
10
|
+
def __init__(self, body: ErrorResponse, headers: typing.Optional[typing.Dict[str, str]] = None):
|
|
11
11
|
super().__init__(status_code=404, headers=headers, body=body)
|
paid/invoices/client.py
ADDED
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
6
|
+
from ..core.request_options import RequestOptions
|
|
7
|
+
from ..types.invoice import Invoice
|
|
8
|
+
from ..types.invoice_lines_response import InvoiceLinesResponse
|
|
9
|
+
from ..types.invoice_list_response import InvoiceListResponse
|
|
10
|
+
from .raw_client import AsyncRawInvoicesClient, RawInvoicesClient
|
|
11
|
+
|
|
12
|
+
# this is used as the default value for optional parameters
|
|
13
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class InvoicesClient:
|
|
17
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
18
|
+
self._raw_client = RawInvoicesClient(client_wrapper=client_wrapper)
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def with_raw_response(self) -> RawInvoicesClient:
|
|
22
|
+
"""
|
|
23
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
24
|
+
|
|
25
|
+
Returns
|
|
26
|
+
-------
|
|
27
|
+
RawInvoicesClient
|
|
28
|
+
"""
|
|
29
|
+
return self._raw_client
|
|
30
|
+
|
|
31
|
+
def list_invoices(
|
|
32
|
+
self,
|
|
33
|
+
*,
|
|
34
|
+
limit: typing.Optional[int] = None,
|
|
35
|
+
offset: typing.Optional[int] = None,
|
|
36
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
37
|
+
) -> InvoiceListResponse:
|
|
38
|
+
"""
|
|
39
|
+
Get a list of invoices for the organization
|
|
40
|
+
|
|
41
|
+
Parameters
|
|
42
|
+
----------
|
|
43
|
+
limit : typing.Optional[int]
|
|
44
|
+
|
|
45
|
+
offset : typing.Optional[int]
|
|
46
|
+
|
|
47
|
+
request_options : typing.Optional[RequestOptions]
|
|
48
|
+
Request-specific configuration.
|
|
49
|
+
|
|
50
|
+
Returns
|
|
51
|
+
-------
|
|
52
|
+
InvoiceListResponse
|
|
53
|
+
200
|
|
54
|
+
|
|
55
|
+
Examples
|
|
56
|
+
--------
|
|
57
|
+
from paid import Paid
|
|
58
|
+
|
|
59
|
+
client = Paid(
|
|
60
|
+
token="YOUR_TOKEN",
|
|
61
|
+
)
|
|
62
|
+
client.invoices.list_invoices()
|
|
63
|
+
"""
|
|
64
|
+
_response = self._raw_client.list_invoices(limit=limit, offset=offset, request_options=request_options)
|
|
65
|
+
return _response.data
|
|
66
|
+
|
|
67
|
+
def get_invoice(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Invoice:
|
|
68
|
+
"""
|
|
69
|
+
Get an invoice by its ID
|
|
70
|
+
|
|
71
|
+
Parameters
|
|
72
|
+
----------
|
|
73
|
+
id : str
|
|
74
|
+
|
|
75
|
+
request_options : typing.Optional[RequestOptions]
|
|
76
|
+
Request-specific configuration.
|
|
77
|
+
|
|
78
|
+
Returns
|
|
79
|
+
-------
|
|
80
|
+
Invoice
|
|
81
|
+
200
|
|
82
|
+
|
|
83
|
+
Examples
|
|
84
|
+
--------
|
|
85
|
+
from paid import Paid
|
|
86
|
+
|
|
87
|
+
client = Paid(
|
|
88
|
+
token="YOUR_TOKEN",
|
|
89
|
+
)
|
|
90
|
+
client.invoices.get_invoice(
|
|
91
|
+
id="id",
|
|
92
|
+
)
|
|
93
|
+
"""
|
|
94
|
+
_response = self._raw_client.get_invoice(id, request_options=request_options)
|
|
95
|
+
return _response.data
|
|
96
|
+
|
|
97
|
+
def update_invoice(
|
|
98
|
+
self,
|
|
99
|
+
id: str,
|
|
100
|
+
*,
|
|
101
|
+
metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
|
|
102
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
103
|
+
) -> Invoice:
|
|
104
|
+
"""
|
|
105
|
+
Update an invoice by its ID (limited fields)
|
|
106
|
+
|
|
107
|
+
Parameters
|
|
108
|
+
----------
|
|
109
|
+
id : str
|
|
110
|
+
|
|
111
|
+
metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
112
|
+
|
|
113
|
+
request_options : typing.Optional[RequestOptions]
|
|
114
|
+
Request-specific configuration.
|
|
115
|
+
|
|
116
|
+
Returns
|
|
117
|
+
-------
|
|
118
|
+
Invoice
|
|
119
|
+
200
|
|
120
|
+
|
|
121
|
+
Examples
|
|
122
|
+
--------
|
|
123
|
+
from paid import Paid
|
|
124
|
+
|
|
125
|
+
client = Paid(
|
|
126
|
+
token="YOUR_TOKEN",
|
|
127
|
+
)
|
|
128
|
+
client.invoices.update_invoice(
|
|
129
|
+
id="id",
|
|
130
|
+
)
|
|
131
|
+
"""
|
|
132
|
+
_response = self._raw_client.update_invoice(id, metadata=metadata, request_options=request_options)
|
|
133
|
+
return _response.data
|
|
134
|
+
|
|
135
|
+
def get_invoice_lines(
|
|
136
|
+
self,
|
|
137
|
+
id: str,
|
|
138
|
+
*,
|
|
139
|
+
limit: typing.Optional[int] = None,
|
|
140
|
+
offset: typing.Optional[int] = None,
|
|
141
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
142
|
+
) -> InvoiceLinesResponse:
|
|
143
|
+
"""
|
|
144
|
+
Get the invoice lines for an invoice by its ID
|
|
145
|
+
|
|
146
|
+
Parameters
|
|
147
|
+
----------
|
|
148
|
+
id : str
|
|
149
|
+
|
|
150
|
+
limit : typing.Optional[int]
|
|
151
|
+
|
|
152
|
+
offset : typing.Optional[int]
|
|
153
|
+
|
|
154
|
+
request_options : typing.Optional[RequestOptions]
|
|
155
|
+
Request-specific configuration.
|
|
156
|
+
|
|
157
|
+
Returns
|
|
158
|
+
-------
|
|
159
|
+
InvoiceLinesResponse
|
|
160
|
+
200
|
|
161
|
+
|
|
162
|
+
Examples
|
|
163
|
+
--------
|
|
164
|
+
from paid import Paid
|
|
165
|
+
|
|
166
|
+
client = Paid(
|
|
167
|
+
token="YOUR_TOKEN",
|
|
168
|
+
)
|
|
169
|
+
client.invoices.get_invoice_lines(
|
|
170
|
+
id="id",
|
|
171
|
+
)
|
|
172
|
+
"""
|
|
173
|
+
_response = self._raw_client.get_invoice_lines(id, limit=limit, offset=offset, request_options=request_options)
|
|
174
|
+
return _response.data
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
class AsyncInvoicesClient:
|
|
178
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
179
|
+
self._raw_client = AsyncRawInvoicesClient(client_wrapper=client_wrapper)
|
|
180
|
+
|
|
181
|
+
@property
|
|
182
|
+
def with_raw_response(self) -> AsyncRawInvoicesClient:
|
|
183
|
+
"""
|
|
184
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
185
|
+
|
|
186
|
+
Returns
|
|
187
|
+
-------
|
|
188
|
+
AsyncRawInvoicesClient
|
|
189
|
+
"""
|
|
190
|
+
return self._raw_client
|
|
191
|
+
|
|
192
|
+
async def list_invoices(
|
|
193
|
+
self,
|
|
194
|
+
*,
|
|
195
|
+
limit: typing.Optional[int] = None,
|
|
196
|
+
offset: typing.Optional[int] = None,
|
|
197
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
198
|
+
) -> InvoiceListResponse:
|
|
199
|
+
"""
|
|
200
|
+
Get a list of invoices for the organization
|
|
201
|
+
|
|
202
|
+
Parameters
|
|
203
|
+
----------
|
|
204
|
+
limit : typing.Optional[int]
|
|
205
|
+
|
|
206
|
+
offset : typing.Optional[int]
|
|
207
|
+
|
|
208
|
+
request_options : typing.Optional[RequestOptions]
|
|
209
|
+
Request-specific configuration.
|
|
210
|
+
|
|
211
|
+
Returns
|
|
212
|
+
-------
|
|
213
|
+
InvoiceListResponse
|
|
214
|
+
200
|
|
215
|
+
|
|
216
|
+
Examples
|
|
217
|
+
--------
|
|
218
|
+
import asyncio
|
|
219
|
+
|
|
220
|
+
from paid import AsyncPaid
|
|
221
|
+
|
|
222
|
+
client = AsyncPaid(
|
|
223
|
+
token="YOUR_TOKEN",
|
|
224
|
+
)
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
async def main() -> None:
|
|
228
|
+
await client.invoices.list_invoices()
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
asyncio.run(main())
|
|
232
|
+
"""
|
|
233
|
+
_response = await self._raw_client.list_invoices(limit=limit, offset=offset, request_options=request_options)
|
|
234
|
+
return _response.data
|
|
235
|
+
|
|
236
|
+
async def get_invoice(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Invoice:
|
|
237
|
+
"""
|
|
238
|
+
Get an invoice by its ID
|
|
239
|
+
|
|
240
|
+
Parameters
|
|
241
|
+
----------
|
|
242
|
+
id : str
|
|
243
|
+
|
|
244
|
+
request_options : typing.Optional[RequestOptions]
|
|
245
|
+
Request-specific configuration.
|
|
246
|
+
|
|
247
|
+
Returns
|
|
248
|
+
-------
|
|
249
|
+
Invoice
|
|
250
|
+
200
|
|
251
|
+
|
|
252
|
+
Examples
|
|
253
|
+
--------
|
|
254
|
+
import asyncio
|
|
255
|
+
|
|
256
|
+
from paid import AsyncPaid
|
|
257
|
+
|
|
258
|
+
client = AsyncPaid(
|
|
259
|
+
token="YOUR_TOKEN",
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
async def main() -> None:
|
|
264
|
+
await client.invoices.get_invoice(
|
|
265
|
+
id="id",
|
|
266
|
+
)
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
asyncio.run(main())
|
|
270
|
+
"""
|
|
271
|
+
_response = await self._raw_client.get_invoice(id, request_options=request_options)
|
|
272
|
+
return _response.data
|
|
273
|
+
|
|
274
|
+
async def update_invoice(
|
|
275
|
+
self,
|
|
276
|
+
id: str,
|
|
277
|
+
*,
|
|
278
|
+
metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
|
|
279
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
280
|
+
) -> Invoice:
|
|
281
|
+
"""
|
|
282
|
+
Update an invoice by its ID (limited fields)
|
|
283
|
+
|
|
284
|
+
Parameters
|
|
285
|
+
----------
|
|
286
|
+
id : str
|
|
287
|
+
|
|
288
|
+
metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
289
|
+
|
|
290
|
+
request_options : typing.Optional[RequestOptions]
|
|
291
|
+
Request-specific configuration.
|
|
292
|
+
|
|
293
|
+
Returns
|
|
294
|
+
-------
|
|
295
|
+
Invoice
|
|
296
|
+
200
|
|
297
|
+
|
|
298
|
+
Examples
|
|
299
|
+
--------
|
|
300
|
+
import asyncio
|
|
301
|
+
|
|
302
|
+
from paid import AsyncPaid
|
|
303
|
+
|
|
304
|
+
client = AsyncPaid(
|
|
305
|
+
token="YOUR_TOKEN",
|
|
306
|
+
)
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
async def main() -> None:
|
|
310
|
+
await client.invoices.update_invoice(
|
|
311
|
+
id="id",
|
|
312
|
+
)
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
asyncio.run(main())
|
|
316
|
+
"""
|
|
317
|
+
_response = await self._raw_client.update_invoice(id, metadata=metadata, request_options=request_options)
|
|
318
|
+
return _response.data
|
|
319
|
+
|
|
320
|
+
async def get_invoice_lines(
|
|
321
|
+
self,
|
|
322
|
+
id: str,
|
|
323
|
+
*,
|
|
324
|
+
limit: typing.Optional[int] = None,
|
|
325
|
+
offset: typing.Optional[int] = None,
|
|
326
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
327
|
+
) -> InvoiceLinesResponse:
|
|
328
|
+
"""
|
|
329
|
+
Get the invoice lines for an invoice by its ID
|
|
330
|
+
|
|
331
|
+
Parameters
|
|
332
|
+
----------
|
|
333
|
+
id : str
|
|
334
|
+
|
|
335
|
+
limit : typing.Optional[int]
|
|
336
|
+
|
|
337
|
+
offset : typing.Optional[int]
|
|
338
|
+
|
|
339
|
+
request_options : typing.Optional[RequestOptions]
|
|
340
|
+
Request-specific configuration.
|
|
341
|
+
|
|
342
|
+
Returns
|
|
343
|
+
-------
|
|
344
|
+
InvoiceLinesResponse
|
|
345
|
+
200
|
|
346
|
+
|
|
347
|
+
Examples
|
|
348
|
+
--------
|
|
349
|
+
import asyncio
|
|
350
|
+
|
|
351
|
+
from paid import AsyncPaid
|
|
352
|
+
|
|
353
|
+
client = AsyncPaid(
|
|
354
|
+
token="YOUR_TOKEN",
|
|
355
|
+
)
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
async def main() -> None:
|
|
359
|
+
await client.invoices.get_invoice_lines(
|
|
360
|
+
id="id",
|
|
361
|
+
)
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
asyncio.run(main())
|
|
365
|
+
"""
|
|
366
|
+
_response = await self._raw_client.get_invoice_lines(
|
|
367
|
+
id, limit=limit, offset=offset, request_options=request_options
|
|
368
|
+
)
|
|
369
|
+
return _response.data
|