airbyte-agent-orb 0.1.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.
- airbyte_agent_orb/__init__.py +137 -0
- airbyte_agent_orb/_vendored/__init__.py +1 -0
- airbyte_agent_orb/_vendored/connector_sdk/__init__.py +82 -0
- airbyte_agent_orb/_vendored/connector_sdk/auth_strategies.py +1171 -0
- airbyte_agent_orb/_vendored/connector_sdk/auth_template.py +135 -0
- airbyte_agent_orb/_vendored/connector_sdk/cloud_utils/__init__.py +5 -0
- airbyte_agent_orb/_vendored/connector_sdk/cloud_utils/client.py +213 -0
- airbyte_agent_orb/_vendored/connector_sdk/connector_model_loader.py +1116 -0
- airbyte_agent_orb/_vendored/connector_sdk/constants.py +78 -0
- airbyte_agent_orb/_vendored/connector_sdk/exceptions.py +23 -0
- airbyte_agent_orb/_vendored/connector_sdk/executor/__init__.py +31 -0
- airbyte_agent_orb/_vendored/connector_sdk/executor/hosted_executor.py +196 -0
- airbyte_agent_orb/_vendored/connector_sdk/executor/local_executor.py +1773 -0
- airbyte_agent_orb/_vendored/connector_sdk/executor/models.py +190 -0
- airbyte_agent_orb/_vendored/connector_sdk/extensions.py +693 -0
- airbyte_agent_orb/_vendored/connector_sdk/http/__init__.py +37 -0
- airbyte_agent_orb/_vendored/connector_sdk/http/adapters/__init__.py +9 -0
- airbyte_agent_orb/_vendored/connector_sdk/http/adapters/httpx_adapter.py +251 -0
- airbyte_agent_orb/_vendored/connector_sdk/http/config.py +98 -0
- airbyte_agent_orb/_vendored/connector_sdk/http/exceptions.py +119 -0
- airbyte_agent_orb/_vendored/connector_sdk/http/protocols.py +114 -0
- airbyte_agent_orb/_vendored/connector_sdk/http/response.py +104 -0
- airbyte_agent_orb/_vendored/connector_sdk/http_client.py +693 -0
- airbyte_agent_orb/_vendored/connector_sdk/introspection.py +481 -0
- airbyte_agent_orb/_vendored/connector_sdk/logging/__init__.py +11 -0
- airbyte_agent_orb/_vendored/connector_sdk/logging/logger.py +273 -0
- airbyte_agent_orb/_vendored/connector_sdk/logging/types.py +93 -0
- airbyte_agent_orb/_vendored/connector_sdk/observability/__init__.py +11 -0
- airbyte_agent_orb/_vendored/connector_sdk/observability/config.py +179 -0
- airbyte_agent_orb/_vendored/connector_sdk/observability/models.py +19 -0
- airbyte_agent_orb/_vendored/connector_sdk/observability/redactor.py +81 -0
- airbyte_agent_orb/_vendored/connector_sdk/observability/session.py +103 -0
- airbyte_agent_orb/_vendored/connector_sdk/performance/__init__.py +6 -0
- airbyte_agent_orb/_vendored/connector_sdk/performance/instrumentation.py +57 -0
- airbyte_agent_orb/_vendored/connector_sdk/performance/metrics.py +93 -0
- airbyte_agent_orb/_vendored/connector_sdk/schema/__init__.py +75 -0
- airbyte_agent_orb/_vendored/connector_sdk/schema/base.py +201 -0
- airbyte_agent_orb/_vendored/connector_sdk/schema/components.py +244 -0
- airbyte_agent_orb/_vendored/connector_sdk/schema/connector.py +120 -0
- airbyte_agent_orb/_vendored/connector_sdk/schema/extensions.py +301 -0
- airbyte_agent_orb/_vendored/connector_sdk/schema/operations.py +146 -0
- airbyte_agent_orb/_vendored/connector_sdk/schema/security.py +236 -0
- airbyte_agent_orb/_vendored/connector_sdk/secrets.py +182 -0
- airbyte_agent_orb/_vendored/connector_sdk/telemetry/__init__.py +10 -0
- airbyte_agent_orb/_vendored/connector_sdk/telemetry/config.py +32 -0
- airbyte_agent_orb/_vendored/connector_sdk/telemetry/events.py +59 -0
- airbyte_agent_orb/_vendored/connector_sdk/telemetry/tracker.py +155 -0
- airbyte_agent_orb/_vendored/connector_sdk/types.py +255 -0
- airbyte_agent_orb/_vendored/connector_sdk/utils.py +60 -0
- airbyte_agent_orb/_vendored/connector_sdk/validation.py +828 -0
- airbyte_agent_orb/connector.py +1035 -0
- airbyte_agent_orb/connector_model.py +2163 -0
- airbyte_agent_orb/models.py +513 -0
- airbyte_agent_orb/types.py +1090 -0
- airbyte_agent_orb-0.1.0.dist-info/METADATA +152 -0
- airbyte_agent_orb-0.1.0.dist-info/RECORD +57 -0
- airbyte_agent_orb-0.1.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,1090 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Type definitions for orb connector.
|
|
3
|
+
"""
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
# Use typing_extensions.TypedDict for Pydantic compatibility
|
|
7
|
+
try:
|
|
8
|
+
from typing_extensions import TypedDict, NotRequired
|
|
9
|
+
except ImportError:
|
|
10
|
+
from typing import TypedDict, NotRequired # type: ignore[attr-defined]
|
|
11
|
+
|
|
12
|
+
from typing import Any, Literal
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# ===== NESTED PARAM TYPE DEFINITIONS =====
|
|
16
|
+
# Nested parameter schemas discovered during parameter extraction
|
|
17
|
+
|
|
18
|
+
# ===== OPERATION PARAMS TYPE DEFINITIONS =====
|
|
19
|
+
|
|
20
|
+
class CustomersListParams(TypedDict):
|
|
21
|
+
"""Parameters for customers.list operation"""
|
|
22
|
+
limit: NotRequired[int]
|
|
23
|
+
cursor: NotRequired[str]
|
|
24
|
+
|
|
25
|
+
class CustomersGetParams(TypedDict):
|
|
26
|
+
"""Parameters for customers.get operation"""
|
|
27
|
+
customer_id: str
|
|
28
|
+
|
|
29
|
+
class SubscriptionsListParams(TypedDict):
|
|
30
|
+
"""Parameters for subscriptions.list operation"""
|
|
31
|
+
limit: NotRequired[int]
|
|
32
|
+
cursor: NotRequired[str]
|
|
33
|
+
customer_id: NotRequired[str]
|
|
34
|
+
external_customer_id: NotRequired[str]
|
|
35
|
+
status: NotRequired[str]
|
|
36
|
+
|
|
37
|
+
class SubscriptionsGetParams(TypedDict):
|
|
38
|
+
"""Parameters for subscriptions.get operation"""
|
|
39
|
+
subscription_id: str
|
|
40
|
+
|
|
41
|
+
class PlansListParams(TypedDict):
|
|
42
|
+
"""Parameters for plans.list operation"""
|
|
43
|
+
limit: NotRequired[int]
|
|
44
|
+
cursor: NotRequired[str]
|
|
45
|
+
|
|
46
|
+
class PlansGetParams(TypedDict):
|
|
47
|
+
"""Parameters for plans.get operation"""
|
|
48
|
+
plan_id: str
|
|
49
|
+
|
|
50
|
+
class InvoicesListParams(TypedDict):
|
|
51
|
+
"""Parameters for invoices.list operation"""
|
|
52
|
+
limit: NotRequired[int]
|
|
53
|
+
cursor: NotRequired[str]
|
|
54
|
+
customer_id: NotRequired[str]
|
|
55
|
+
external_customer_id: NotRequired[str]
|
|
56
|
+
subscription_id: NotRequired[str]
|
|
57
|
+
invoice_date_gt: NotRequired[str]
|
|
58
|
+
invoice_date_gte: NotRequired[str]
|
|
59
|
+
invoice_date_lt: NotRequired[str]
|
|
60
|
+
invoice_date_lte: NotRequired[str]
|
|
61
|
+
status: NotRequired[str]
|
|
62
|
+
|
|
63
|
+
class InvoicesGetParams(TypedDict):
|
|
64
|
+
"""Parameters for invoices.get operation"""
|
|
65
|
+
invoice_id: str
|
|
66
|
+
|
|
67
|
+
# ===== SEARCH TYPES =====
|
|
68
|
+
|
|
69
|
+
# Sort specification
|
|
70
|
+
AirbyteSortOrder = Literal["asc", "desc"]
|
|
71
|
+
|
|
72
|
+
# ===== CUSTOMERS SEARCH TYPES =====
|
|
73
|
+
|
|
74
|
+
class CustomersSearchFilter(TypedDict, total=False):
|
|
75
|
+
"""Available fields for filtering customers search queries."""
|
|
76
|
+
id: str
|
|
77
|
+
"""The unique identifier of the customer"""
|
|
78
|
+
external_customer_id: str | None
|
|
79
|
+
"""The ID of the customer in an external system"""
|
|
80
|
+
name: str | None
|
|
81
|
+
"""The name of the customer"""
|
|
82
|
+
email: str | None
|
|
83
|
+
"""The email address of the customer"""
|
|
84
|
+
created_at: str | None
|
|
85
|
+
"""The date and time when the customer was created"""
|
|
86
|
+
payment_provider: str | None
|
|
87
|
+
"""The payment provider used by the customer"""
|
|
88
|
+
payment_provider_id: str | None
|
|
89
|
+
"""The ID of the customer in the payment provider's system"""
|
|
90
|
+
timezone: str | None
|
|
91
|
+
"""The timezone setting of the customer"""
|
|
92
|
+
shipping_address: dict[str, Any] | None
|
|
93
|
+
"""The shipping address of the customer"""
|
|
94
|
+
billing_address: dict[str, Any] | None
|
|
95
|
+
"""The billing address of the customer"""
|
|
96
|
+
balance: str | None
|
|
97
|
+
"""The current balance of the customer"""
|
|
98
|
+
currency: str | None
|
|
99
|
+
"""The currency of the customer"""
|
|
100
|
+
auto_collection: bool | None
|
|
101
|
+
"""Whether auto collection is enabled"""
|
|
102
|
+
metadata: dict[str, Any] | None
|
|
103
|
+
"""Additional metadata for the customer"""
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class CustomersInFilter(TypedDict, total=False):
|
|
107
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
108
|
+
id: list[str]
|
|
109
|
+
"""The unique identifier of the customer"""
|
|
110
|
+
external_customer_id: list[str]
|
|
111
|
+
"""The ID of the customer in an external system"""
|
|
112
|
+
name: list[str]
|
|
113
|
+
"""The name of the customer"""
|
|
114
|
+
email: list[str]
|
|
115
|
+
"""The email address of the customer"""
|
|
116
|
+
created_at: list[str]
|
|
117
|
+
"""The date and time when the customer was created"""
|
|
118
|
+
payment_provider: list[str]
|
|
119
|
+
"""The payment provider used by the customer"""
|
|
120
|
+
payment_provider_id: list[str]
|
|
121
|
+
"""The ID of the customer in the payment provider's system"""
|
|
122
|
+
timezone: list[str]
|
|
123
|
+
"""The timezone setting of the customer"""
|
|
124
|
+
shipping_address: list[dict[str, Any]]
|
|
125
|
+
"""The shipping address of the customer"""
|
|
126
|
+
billing_address: list[dict[str, Any]]
|
|
127
|
+
"""The billing address of the customer"""
|
|
128
|
+
balance: list[str]
|
|
129
|
+
"""The current balance of the customer"""
|
|
130
|
+
currency: list[str]
|
|
131
|
+
"""The currency of the customer"""
|
|
132
|
+
auto_collection: list[bool]
|
|
133
|
+
"""Whether auto collection is enabled"""
|
|
134
|
+
metadata: list[dict[str, Any]]
|
|
135
|
+
"""Additional metadata for the customer"""
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
class CustomersAnyValueFilter(TypedDict, total=False):
|
|
139
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
140
|
+
id: Any
|
|
141
|
+
"""The unique identifier of the customer"""
|
|
142
|
+
external_customer_id: Any
|
|
143
|
+
"""The ID of the customer in an external system"""
|
|
144
|
+
name: Any
|
|
145
|
+
"""The name of the customer"""
|
|
146
|
+
email: Any
|
|
147
|
+
"""The email address of the customer"""
|
|
148
|
+
created_at: Any
|
|
149
|
+
"""The date and time when the customer was created"""
|
|
150
|
+
payment_provider: Any
|
|
151
|
+
"""The payment provider used by the customer"""
|
|
152
|
+
payment_provider_id: Any
|
|
153
|
+
"""The ID of the customer in the payment provider's system"""
|
|
154
|
+
timezone: Any
|
|
155
|
+
"""The timezone setting of the customer"""
|
|
156
|
+
shipping_address: Any
|
|
157
|
+
"""The shipping address of the customer"""
|
|
158
|
+
billing_address: Any
|
|
159
|
+
"""The billing address of the customer"""
|
|
160
|
+
balance: Any
|
|
161
|
+
"""The current balance of the customer"""
|
|
162
|
+
currency: Any
|
|
163
|
+
"""The currency of the customer"""
|
|
164
|
+
auto_collection: Any
|
|
165
|
+
"""Whether auto collection is enabled"""
|
|
166
|
+
metadata: Any
|
|
167
|
+
"""Additional metadata for the customer"""
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
class CustomersStringFilter(TypedDict, total=False):
|
|
171
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
172
|
+
id: str
|
|
173
|
+
"""The unique identifier of the customer"""
|
|
174
|
+
external_customer_id: str
|
|
175
|
+
"""The ID of the customer in an external system"""
|
|
176
|
+
name: str
|
|
177
|
+
"""The name of the customer"""
|
|
178
|
+
email: str
|
|
179
|
+
"""The email address of the customer"""
|
|
180
|
+
created_at: str
|
|
181
|
+
"""The date and time when the customer was created"""
|
|
182
|
+
payment_provider: str
|
|
183
|
+
"""The payment provider used by the customer"""
|
|
184
|
+
payment_provider_id: str
|
|
185
|
+
"""The ID of the customer in the payment provider's system"""
|
|
186
|
+
timezone: str
|
|
187
|
+
"""The timezone setting of the customer"""
|
|
188
|
+
shipping_address: str
|
|
189
|
+
"""The shipping address of the customer"""
|
|
190
|
+
billing_address: str
|
|
191
|
+
"""The billing address of the customer"""
|
|
192
|
+
balance: str
|
|
193
|
+
"""The current balance of the customer"""
|
|
194
|
+
currency: str
|
|
195
|
+
"""The currency of the customer"""
|
|
196
|
+
auto_collection: str
|
|
197
|
+
"""Whether auto collection is enabled"""
|
|
198
|
+
metadata: str
|
|
199
|
+
"""Additional metadata for the customer"""
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
class CustomersSortFilter(TypedDict, total=False):
|
|
203
|
+
"""Available fields for sorting customers search results."""
|
|
204
|
+
id: AirbyteSortOrder
|
|
205
|
+
"""The unique identifier of the customer"""
|
|
206
|
+
external_customer_id: AirbyteSortOrder
|
|
207
|
+
"""The ID of the customer in an external system"""
|
|
208
|
+
name: AirbyteSortOrder
|
|
209
|
+
"""The name of the customer"""
|
|
210
|
+
email: AirbyteSortOrder
|
|
211
|
+
"""The email address of the customer"""
|
|
212
|
+
created_at: AirbyteSortOrder
|
|
213
|
+
"""The date and time when the customer was created"""
|
|
214
|
+
payment_provider: AirbyteSortOrder
|
|
215
|
+
"""The payment provider used by the customer"""
|
|
216
|
+
payment_provider_id: AirbyteSortOrder
|
|
217
|
+
"""The ID of the customer in the payment provider's system"""
|
|
218
|
+
timezone: AirbyteSortOrder
|
|
219
|
+
"""The timezone setting of the customer"""
|
|
220
|
+
shipping_address: AirbyteSortOrder
|
|
221
|
+
"""The shipping address of the customer"""
|
|
222
|
+
billing_address: AirbyteSortOrder
|
|
223
|
+
"""The billing address of the customer"""
|
|
224
|
+
balance: AirbyteSortOrder
|
|
225
|
+
"""The current balance of the customer"""
|
|
226
|
+
currency: AirbyteSortOrder
|
|
227
|
+
"""The currency of the customer"""
|
|
228
|
+
auto_collection: AirbyteSortOrder
|
|
229
|
+
"""Whether auto collection is enabled"""
|
|
230
|
+
metadata: AirbyteSortOrder
|
|
231
|
+
"""Additional metadata for the customer"""
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
# Entity-specific condition types for customers
|
|
235
|
+
class CustomersEqCondition(TypedDict, total=False):
|
|
236
|
+
"""Equal to: field equals value."""
|
|
237
|
+
eq: CustomersSearchFilter
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
class CustomersNeqCondition(TypedDict, total=False):
|
|
241
|
+
"""Not equal to: field does not equal value."""
|
|
242
|
+
neq: CustomersSearchFilter
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
class CustomersGtCondition(TypedDict, total=False):
|
|
246
|
+
"""Greater than: field > value."""
|
|
247
|
+
gt: CustomersSearchFilter
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
class CustomersGteCondition(TypedDict, total=False):
|
|
251
|
+
"""Greater than or equal: field >= value."""
|
|
252
|
+
gte: CustomersSearchFilter
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
class CustomersLtCondition(TypedDict, total=False):
|
|
256
|
+
"""Less than: field < value."""
|
|
257
|
+
lt: CustomersSearchFilter
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
class CustomersLteCondition(TypedDict, total=False):
|
|
261
|
+
"""Less than or equal: field <= value."""
|
|
262
|
+
lte: CustomersSearchFilter
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
class CustomersLikeCondition(TypedDict, total=False):
|
|
266
|
+
"""Partial string match with % wildcards."""
|
|
267
|
+
like: CustomersStringFilter
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
class CustomersFuzzyCondition(TypedDict, total=False):
|
|
271
|
+
"""Ordered word text match (case-insensitive)."""
|
|
272
|
+
fuzzy: CustomersStringFilter
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
class CustomersKeywordCondition(TypedDict, total=False):
|
|
276
|
+
"""Keyword text match (any word present)."""
|
|
277
|
+
keyword: CustomersStringFilter
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
class CustomersContainsCondition(TypedDict, total=False):
|
|
281
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
282
|
+
contains: CustomersAnyValueFilter
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
286
|
+
CustomersInCondition = TypedDict("CustomersInCondition", {"in": CustomersInFilter}, total=False)
|
|
287
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
288
|
+
|
|
289
|
+
CustomersNotCondition = TypedDict("CustomersNotCondition", {"not": "CustomersCondition"}, total=False)
|
|
290
|
+
"""Negates the nested condition."""
|
|
291
|
+
|
|
292
|
+
CustomersAndCondition = TypedDict("CustomersAndCondition", {"and": "list[CustomersCondition]"}, total=False)
|
|
293
|
+
"""True if all nested conditions are true."""
|
|
294
|
+
|
|
295
|
+
CustomersOrCondition = TypedDict("CustomersOrCondition", {"or": "list[CustomersCondition]"}, total=False)
|
|
296
|
+
"""True if any nested condition is true."""
|
|
297
|
+
|
|
298
|
+
CustomersAnyCondition = TypedDict("CustomersAnyCondition", {"any": CustomersAnyValueFilter}, total=False)
|
|
299
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
300
|
+
|
|
301
|
+
# Union of all customers condition types
|
|
302
|
+
CustomersCondition = (
|
|
303
|
+
CustomersEqCondition
|
|
304
|
+
| CustomersNeqCondition
|
|
305
|
+
| CustomersGtCondition
|
|
306
|
+
| CustomersGteCondition
|
|
307
|
+
| CustomersLtCondition
|
|
308
|
+
| CustomersLteCondition
|
|
309
|
+
| CustomersInCondition
|
|
310
|
+
| CustomersLikeCondition
|
|
311
|
+
| CustomersFuzzyCondition
|
|
312
|
+
| CustomersKeywordCondition
|
|
313
|
+
| CustomersContainsCondition
|
|
314
|
+
| CustomersNotCondition
|
|
315
|
+
| CustomersAndCondition
|
|
316
|
+
| CustomersOrCondition
|
|
317
|
+
| CustomersAnyCondition
|
|
318
|
+
)
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
class CustomersSearchQuery(TypedDict, total=False):
|
|
322
|
+
"""Search query for customers entity."""
|
|
323
|
+
filter: CustomersCondition
|
|
324
|
+
sort: list[CustomersSortFilter]
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
# ===== SUBSCRIPTIONS SEARCH TYPES =====
|
|
328
|
+
|
|
329
|
+
class SubscriptionsSearchFilter(TypedDict, total=False):
|
|
330
|
+
"""Available fields for filtering subscriptions search queries."""
|
|
331
|
+
id: str
|
|
332
|
+
"""The unique identifier of the subscription"""
|
|
333
|
+
created_at: str | None
|
|
334
|
+
"""The date and time when the subscription was created"""
|
|
335
|
+
start_date: str | None
|
|
336
|
+
"""The date and time when the subscription starts"""
|
|
337
|
+
end_date: str | None
|
|
338
|
+
"""The date and time when the subscription ends"""
|
|
339
|
+
status: str | None
|
|
340
|
+
"""The current status of the subscription"""
|
|
341
|
+
customer: dict[str, Any] | None
|
|
342
|
+
"""The customer associated with the subscription"""
|
|
343
|
+
plan: dict[str, Any] | None
|
|
344
|
+
"""The plan associated with the subscription"""
|
|
345
|
+
current_billing_period_start_date: str | None
|
|
346
|
+
"""The start date of the current billing period"""
|
|
347
|
+
current_billing_period_end_date: str | None
|
|
348
|
+
"""The end date of the current billing period"""
|
|
349
|
+
auto_collection: bool | None
|
|
350
|
+
"""Whether auto collection is enabled"""
|
|
351
|
+
net_terms: int | None
|
|
352
|
+
"""The net terms for the subscription"""
|
|
353
|
+
metadata: dict[str, Any] | None
|
|
354
|
+
"""Additional metadata for the subscription"""
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
class SubscriptionsInFilter(TypedDict, total=False):
|
|
358
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
359
|
+
id: list[str]
|
|
360
|
+
"""The unique identifier of the subscription"""
|
|
361
|
+
created_at: list[str]
|
|
362
|
+
"""The date and time when the subscription was created"""
|
|
363
|
+
start_date: list[str]
|
|
364
|
+
"""The date and time when the subscription starts"""
|
|
365
|
+
end_date: list[str]
|
|
366
|
+
"""The date and time when the subscription ends"""
|
|
367
|
+
status: list[str]
|
|
368
|
+
"""The current status of the subscription"""
|
|
369
|
+
customer: list[dict[str, Any]]
|
|
370
|
+
"""The customer associated with the subscription"""
|
|
371
|
+
plan: list[dict[str, Any]]
|
|
372
|
+
"""The plan associated with the subscription"""
|
|
373
|
+
current_billing_period_start_date: list[str]
|
|
374
|
+
"""The start date of the current billing period"""
|
|
375
|
+
current_billing_period_end_date: list[str]
|
|
376
|
+
"""The end date of the current billing period"""
|
|
377
|
+
auto_collection: list[bool]
|
|
378
|
+
"""Whether auto collection is enabled"""
|
|
379
|
+
net_terms: list[int]
|
|
380
|
+
"""The net terms for the subscription"""
|
|
381
|
+
metadata: list[dict[str, Any]]
|
|
382
|
+
"""Additional metadata for the subscription"""
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
class SubscriptionsAnyValueFilter(TypedDict, total=False):
|
|
386
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
387
|
+
id: Any
|
|
388
|
+
"""The unique identifier of the subscription"""
|
|
389
|
+
created_at: Any
|
|
390
|
+
"""The date and time when the subscription was created"""
|
|
391
|
+
start_date: Any
|
|
392
|
+
"""The date and time when the subscription starts"""
|
|
393
|
+
end_date: Any
|
|
394
|
+
"""The date and time when the subscription ends"""
|
|
395
|
+
status: Any
|
|
396
|
+
"""The current status of the subscription"""
|
|
397
|
+
customer: Any
|
|
398
|
+
"""The customer associated with the subscription"""
|
|
399
|
+
plan: Any
|
|
400
|
+
"""The plan associated with the subscription"""
|
|
401
|
+
current_billing_period_start_date: Any
|
|
402
|
+
"""The start date of the current billing period"""
|
|
403
|
+
current_billing_period_end_date: Any
|
|
404
|
+
"""The end date of the current billing period"""
|
|
405
|
+
auto_collection: Any
|
|
406
|
+
"""Whether auto collection is enabled"""
|
|
407
|
+
net_terms: Any
|
|
408
|
+
"""The net terms for the subscription"""
|
|
409
|
+
metadata: Any
|
|
410
|
+
"""Additional metadata for the subscription"""
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
class SubscriptionsStringFilter(TypedDict, total=False):
|
|
414
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
415
|
+
id: str
|
|
416
|
+
"""The unique identifier of the subscription"""
|
|
417
|
+
created_at: str
|
|
418
|
+
"""The date and time when the subscription was created"""
|
|
419
|
+
start_date: str
|
|
420
|
+
"""The date and time when the subscription starts"""
|
|
421
|
+
end_date: str
|
|
422
|
+
"""The date and time when the subscription ends"""
|
|
423
|
+
status: str
|
|
424
|
+
"""The current status of the subscription"""
|
|
425
|
+
customer: str
|
|
426
|
+
"""The customer associated with the subscription"""
|
|
427
|
+
plan: str
|
|
428
|
+
"""The plan associated with the subscription"""
|
|
429
|
+
current_billing_period_start_date: str
|
|
430
|
+
"""The start date of the current billing period"""
|
|
431
|
+
current_billing_period_end_date: str
|
|
432
|
+
"""The end date of the current billing period"""
|
|
433
|
+
auto_collection: str
|
|
434
|
+
"""Whether auto collection is enabled"""
|
|
435
|
+
net_terms: str
|
|
436
|
+
"""The net terms for the subscription"""
|
|
437
|
+
metadata: str
|
|
438
|
+
"""Additional metadata for the subscription"""
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
class SubscriptionsSortFilter(TypedDict, total=False):
|
|
442
|
+
"""Available fields for sorting subscriptions search results."""
|
|
443
|
+
id: AirbyteSortOrder
|
|
444
|
+
"""The unique identifier of the subscription"""
|
|
445
|
+
created_at: AirbyteSortOrder
|
|
446
|
+
"""The date and time when the subscription was created"""
|
|
447
|
+
start_date: AirbyteSortOrder
|
|
448
|
+
"""The date and time when the subscription starts"""
|
|
449
|
+
end_date: AirbyteSortOrder
|
|
450
|
+
"""The date and time when the subscription ends"""
|
|
451
|
+
status: AirbyteSortOrder
|
|
452
|
+
"""The current status of the subscription"""
|
|
453
|
+
customer: AirbyteSortOrder
|
|
454
|
+
"""The customer associated with the subscription"""
|
|
455
|
+
plan: AirbyteSortOrder
|
|
456
|
+
"""The plan associated with the subscription"""
|
|
457
|
+
current_billing_period_start_date: AirbyteSortOrder
|
|
458
|
+
"""The start date of the current billing period"""
|
|
459
|
+
current_billing_period_end_date: AirbyteSortOrder
|
|
460
|
+
"""The end date of the current billing period"""
|
|
461
|
+
auto_collection: AirbyteSortOrder
|
|
462
|
+
"""Whether auto collection is enabled"""
|
|
463
|
+
net_terms: AirbyteSortOrder
|
|
464
|
+
"""The net terms for the subscription"""
|
|
465
|
+
metadata: AirbyteSortOrder
|
|
466
|
+
"""Additional metadata for the subscription"""
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
# Entity-specific condition types for subscriptions
|
|
470
|
+
class SubscriptionsEqCondition(TypedDict, total=False):
|
|
471
|
+
"""Equal to: field equals value."""
|
|
472
|
+
eq: SubscriptionsSearchFilter
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
class SubscriptionsNeqCondition(TypedDict, total=False):
|
|
476
|
+
"""Not equal to: field does not equal value."""
|
|
477
|
+
neq: SubscriptionsSearchFilter
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
class SubscriptionsGtCondition(TypedDict, total=False):
|
|
481
|
+
"""Greater than: field > value."""
|
|
482
|
+
gt: SubscriptionsSearchFilter
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
class SubscriptionsGteCondition(TypedDict, total=False):
|
|
486
|
+
"""Greater than or equal: field >= value."""
|
|
487
|
+
gte: SubscriptionsSearchFilter
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
class SubscriptionsLtCondition(TypedDict, total=False):
|
|
491
|
+
"""Less than: field < value."""
|
|
492
|
+
lt: SubscriptionsSearchFilter
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
class SubscriptionsLteCondition(TypedDict, total=False):
|
|
496
|
+
"""Less than or equal: field <= value."""
|
|
497
|
+
lte: SubscriptionsSearchFilter
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
class SubscriptionsLikeCondition(TypedDict, total=False):
|
|
501
|
+
"""Partial string match with % wildcards."""
|
|
502
|
+
like: SubscriptionsStringFilter
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
class SubscriptionsFuzzyCondition(TypedDict, total=False):
|
|
506
|
+
"""Ordered word text match (case-insensitive)."""
|
|
507
|
+
fuzzy: SubscriptionsStringFilter
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
class SubscriptionsKeywordCondition(TypedDict, total=False):
|
|
511
|
+
"""Keyword text match (any word present)."""
|
|
512
|
+
keyword: SubscriptionsStringFilter
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
class SubscriptionsContainsCondition(TypedDict, total=False):
|
|
516
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
517
|
+
contains: SubscriptionsAnyValueFilter
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
521
|
+
SubscriptionsInCondition = TypedDict("SubscriptionsInCondition", {"in": SubscriptionsInFilter}, total=False)
|
|
522
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
523
|
+
|
|
524
|
+
SubscriptionsNotCondition = TypedDict("SubscriptionsNotCondition", {"not": "SubscriptionsCondition"}, total=False)
|
|
525
|
+
"""Negates the nested condition."""
|
|
526
|
+
|
|
527
|
+
SubscriptionsAndCondition = TypedDict("SubscriptionsAndCondition", {"and": "list[SubscriptionsCondition]"}, total=False)
|
|
528
|
+
"""True if all nested conditions are true."""
|
|
529
|
+
|
|
530
|
+
SubscriptionsOrCondition = TypedDict("SubscriptionsOrCondition", {"or": "list[SubscriptionsCondition]"}, total=False)
|
|
531
|
+
"""True if any nested condition is true."""
|
|
532
|
+
|
|
533
|
+
SubscriptionsAnyCondition = TypedDict("SubscriptionsAnyCondition", {"any": SubscriptionsAnyValueFilter}, total=False)
|
|
534
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
535
|
+
|
|
536
|
+
# Union of all subscriptions condition types
|
|
537
|
+
SubscriptionsCondition = (
|
|
538
|
+
SubscriptionsEqCondition
|
|
539
|
+
| SubscriptionsNeqCondition
|
|
540
|
+
| SubscriptionsGtCondition
|
|
541
|
+
| SubscriptionsGteCondition
|
|
542
|
+
| SubscriptionsLtCondition
|
|
543
|
+
| SubscriptionsLteCondition
|
|
544
|
+
| SubscriptionsInCondition
|
|
545
|
+
| SubscriptionsLikeCondition
|
|
546
|
+
| SubscriptionsFuzzyCondition
|
|
547
|
+
| SubscriptionsKeywordCondition
|
|
548
|
+
| SubscriptionsContainsCondition
|
|
549
|
+
| SubscriptionsNotCondition
|
|
550
|
+
| SubscriptionsAndCondition
|
|
551
|
+
| SubscriptionsOrCondition
|
|
552
|
+
| SubscriptionsAnyCondition
|
|
553
|
+
)
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
class SubscriptionsSearchQuery(TypedDict, total=False):
|
|
557
|
+
"""Search query for subscriptions entity."""
|
|
558
|
+
filter: SubscriptionsCondition
|
|
559
|
+
sort: list[SubscriptionsSortFilter]
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
# ===== PLANS SEARCH TYPES =====
|
|
563
|
+
|
|
564
|
+
class PlansSearchFilter(TypedDict, total=False):
|
|
565
|
+
"""Available fields for filtering plans search queries."""
|
|
566
|
+
id: str
|
|
567
|
+
"""The unique identifier of the plan"""
|
|
568
|
+
created_at: str | None
|
|
569
|
+
"""The date and time when the plan was created"""
|
|
570
|
+
name: str | None
|
|
571
|
+
"""The name of the plan"""
|
|
572
|
+
description: str | None
|
|
573
|
+
"""A description of the plan"""
|
|
574
|
+
status: str | None
|
|
575
|
+
"""The status of the plan"""
|
|
576
|
+
currency: str | None
|
|
577
|
+
"""The currency of the plan"""
|
|
578
|
+
prices: list[Any] | None
|
|
579
|
+
"""The pricing options for the plan"""
|
|
580
|
+
product: dict[str, Any] | None
|
|
581
|
+
"""The product associated with the plan"""
|
|
582
|
+
external_plan_id: str | None
|
|
583
|
+
"""The external plan ID"""
|
|
584
|
+
metadata: dict[str, Any] | None
|
|
585
|
+
"""Additional metadata for the plan"""
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
class PlansInFilter(TypedDict, total=False):
|
|
589
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
590
|
+
id: list[str]
|
|
591
|
+
"""The unique identifier of the plan"""
|
|
592
|
+
created_at: list[str]
|
|
593
|
+
"""The date and time when the plan was created"""
|
|
594
|
+
name: list[str]
|
|
595
|
+
"""The name of the plan"""
|
|
596
|
+
description: list[str]
|
|
597
|
+
"""A description of the plan"""
|
|
598
|
+
status: list[str]
|
|
599
|
+
"""The status of the plan"""
|
|
600
|
+
currency: list[str]
|
|
601
|
+
"""The currency of the plan"""
|
|
602
|
+
prices: list[list[Any]]
|
|
603
|
+
"""The pricing options for the plan"""
|
|
604
|
+
product: list[dict[str, Any]]
|
|
605
|
+
"""The product associated with the plan"""
|
|
606
|
+
external_plan_id: list[str]
|
|
607
|
+
"""The external plan ID"""
|
|
608
|
+
metadata: list[dict[str, Any]]
|
|
609
|
+
"""Additional metadata for the plan"""
|
|
610
|
+
|
|
611
|
+
|
|
612
|
+
class PlansAnyValueFilter(TypedDict, total=False):
|
|
613
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
614
|
+
id: Any
|
|
615
|
+
"""The unique identifier of the plan"""
|
|
616
|
+
created_at: Any
|
|
617
|
+
"""The date and time when the plan was created"""
|
|
618
|
+
name: Any
|
|
619
|
+
"""The name of the plan"""
|
|
620
|
+
description: Any
|
|
621
|
+
"""A description of the plan"""
|
|
622
|
+
status: Any
|
|
623
|
+
"""The status of the plan"""
|
|
624
|
+
currency: Any
|
|
625
|
+
"""The currency of the plan"""
|
|
626
|
+
prices: Any
|
|
627
|
+
"""The pricing options for the plan"""
|
|
628
|
+
product: Any
|
|
629
|
+
"""The product associated with the plan"""
|
|
630
|
+
external_plan_id: Any
|
|
631
|
+
"""The external plan ID"""
|
|
632
|
+
metadata: Any
|
|
633
|
+
"""Additional metadata for the plan"""
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
class PlansStringFilter(TypedDict, total=False):
|
|
637
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
638
|
+
id: str
|
|
639
|
+
"""The unique identifier of the plan"""
|
|
640
|
+
created_at: str
|
|
641
|
+
"""The date and time when the plan was created"""
|
|
642
|
+
name: str
|
|
643
|
+
"""The name of the plan"""
|
|
644
|
+
description: str
|
|
645
|
+
"""A description of the plan"""
|
|
646
|
+
status: str
|
|
647
|
+
"""The status of the plan"""
|
|
648
|
+
currency: str
|
|
649
|
+
"""The currency of the plan"""
|
|
650
|
+
prices: str
|
|
651
|
+
"""The pricing options for the plan"""
|
|
652
|
+
product: str
|
|
653
|
+
"""The product associated with the plan"""
|
|
654
|
+
external_plan_id: str
|
|
655
|
+
"""The external plan ID"""
|
|
656
|
+
metadata: str
|
|
657
|
+
"""Additional metadata for the plan"""
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
class PlansSortFilter(TypedDict, total=False):
|
|
661
|
+
"""Available fields for sorting plans search results."""
|
|
662
|
+
id: AirbyteSortOrder
|
|
663
|
+
"""The unique identifier of the plan"""
|
|
664
|
+
created_at: AirbyteSortOrder
|
|
665
|
+
"""The date and time when the plan was created"""
|
|
666
|
+
name: AirbyteSortOrder
|
|
667
|
+
"""The name of the plan"""
|
|
668
|
+
description: AirbyteSortOrder
|
|
669
|
+
"""A description of the plan"""
|
|
670
|
+
status: AirbyteSortOrder
|
|
671
|
+
"""The status of the plan"""
|
|
672
|
+
currency: AirbyteSortOrder
|
|
673
|
+
"""The currency of the plan"""
|
|
674
|
+
prices: AirbyteSortOrder
|
|
675
|
+
"""The pricing options for the plan"""
|
|
676
|
+
product: AirbyteSortOrder
|
|
677
|
+
"""The product associated with the plan"""
|
|
678
|
+
external_plan_id: AirbyteSortOrder
|
|
679
|
+
"""The external plan ID"""
|
|
680
|
+
metadata: AirbyteSortOrder
|
|
681
|
+
"""Additional metadata for the plan"""
|
|
682
|
+
|
|
683
|
+
|
|
684
|
+
# Entity-specific condition types for plans
|
|
685
|
+
class PlansEqCondition(TypedDict, total=False):
|
|
686
|
+
"""Equal to: field equals value."""
|
|
687
|
+
eq: PlansSearchFilter
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
class PlansNeqCondition(TypedDict, total=False):
|
|
691
|
+
"""Not equal to: field does not equal value."""
|
|
692
|
+
neq: PlansSearchFilter
|
|
693
|
+
|
|
694
|
+
|
|
695
|
+
class PlansGtCondition(TypedDict, total=False):
|
|
696
|
+
"""Greater than: field > value."""
|
|
697
|
+
gt: PlansSearchFilter
|
|
698
|
+
|
|
699
|
+
|
|
700
|
+
class PlansGteCondition(TypedDict, total=False):
|
|
701
|
+
"""Greater than or equal: field >= value."""
|
|
702
|
+
gte: PlansSearchFilter
|
|
703
|
+
|
|
704
|
+
|
|
705
|
+
class PlansLtCondition(TypedDict, total=False):
|
|
706
|
+
"""Less than: field < value."""
|
|
707
|
+
lt: PlansSearchFilter
|
|
708
|
+
|
|
709
|
+
|
|
710
|
+
class PlansLteCondition(TypedDict, total=False):
|
|
711
|
+
"""Less than or equal: field <= value."""
|
|
712
|
+
lte: PlansSearchFilter
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
class PlansLikeCondition(TypedDict, total=False):
|
|
716
|
+
"""Partial string match with % wildcards."""
|
|
717
|
+
like: PlansStringFilter
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
class PlansFuzzyCondition(TypedDict, total=False):
|
|
721
|
+
"""Ordered word text match (case-insensitive)."""
|
|
722
|
+
fuzzy: PlansStringFilter
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
class PlansKeywordCondition(TypedDict, total=False):
|
|
726
|
+
"""Keyword text match (any word present)."""
|
|
727
|
+
keyword: PlansStringFilter
|
|
728
|
+
|
|
729
|
+
|
|
730
|
+
class PlansContainsCondition(TypedDict, total=False):
|
|
731
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
732
|
+
contains: PlansAnyValueFilter
|
|
733
|
+
|
|
734
|
+
|
|
735
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
736
|
+
PlansInCondition = TypedDict("PlansInCondition", {"in": PlansInFilter}, total=False)
|
|
737
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
738
|
+
|
|
739
|
+
PlansNotCondition = TypedDict("PlansNotCondition", {"not": "PlansCondition"}, total=False)
|
|
740
|
+
"""Negates the nested condition."""
|
|
741
|
+
|
|
742
|
+
PlansAndCondition = TypedDict("PlansAndCondition", {"and": "list[PlansCondition]"}, total=False)
|
|
743
|
+
"""True if all nested conditions are true."""
|
|
744
|
+
|
|
745
|
+
PlansOrCondition = TypedDict("PlansOrCondition", {"or": "list[PlansCondition]"}, total=False)
|
|
746
|
+
"""True if any nested condition is true."""
|
|
747
|
+
|
|
748
|
+
PlansAnyCondition = TypedDict("PlansAnyCondition", {"any": PlansAnyValueFilter}, total=False)
|
|
749
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
750
|
+
|
|
751
|
+
# Union of all plans condition types
|
|
752
|
+
PlansCondition = (
|
|
753
|
+
PlansEqCondition
|
|
754
|
+
| PlansNeqCondition
|
|
755
|
+
| PlansGtCondition
|
|
756
|
+
| PlansGteCondition
|
|
757
|
+
| PlansLtCondition
|
|
758
|
+
| PlansLteCondition
|
|
759
|
+
| PlansInCondition
|
|
760
|
+
| PlansLikeCondition
|
|
761
|
+
| PlansFuzzyCondition
|
|
762
|
+
| PlansKeywordCondition
|
|
763
|
+
| PlansContainsCondition
|
|
764
|
+
| PlansNotCondition
|
|
765
|
+
| PlansAndCondition
|
|
766
|
+
| PlansOrCondition
|
|
767
|
+
| PlansAnyCondition
|
|
768
|
+
)
|
|
769
|
+
|
|
770
|
+
|
|
771
|
+
class PlansSearchQuery(TypedDict, total=False):
|
|
772
|
+
"""Search query for plans entity."""
|
|
773
|
+
filter: PlansCondition
|
|
774
|
+
sort: list[PlansSortFilter]
|
|
775
|
+
|
|
776
|
+
|
|
777
|
+
# ===== INVOICES SEARCH TYPES =====
|
|
778
|
+
|
|
779
|
+
class InvoicesSearchFilter(TypedDict, total=False):
|
|
780
|
+
"""Available fields for filtering invoices search queries."""
|
|
781
|
+
id: str
|
|
782
|
+
"""The unique identifier of the invoice"""
|
|
783
|
+
created_at: str | None
|
|
784
|
+
"""The date and time when the invoice was created"""
|
|
785
|
+
invoice_date: str | None
|
|
786
|
+
"""The date of the invoice"""
|
|
787
|
+
due_date: str | None
|
|
788
|
+
"""The due date for the invoice"""
|
|
789
|
+
invoice_pdf: str | None
|
|
790
|
+
"""The URL to download the PDF version of the invoice"""
|
|
791
|
+
subtotal: str | None
|
|
792
|
+
"""The subtotal amount of the invoice"""
|
|
793
|
+
total: str | None
|
|
794
|
+
"""The total amount of the invoice"""
|
|
795
|
+
amount_due: str | None
|
|
796
|
+
"""The amount due on the invoice"""
|
|
797
|
+
status: str | None
|
|
798
|
+
"""The current status of the invoice"""
|
|
799
|
+
memo: str | None
|
|
800
|
+
"""Any additional notes or comments on the invoice"""
|
|
801
|
+
paid_at: str | None
|
|
802
|
+
"""The date and time when the invoice was paid"""
|
|
803
|
+
issued_at: str | None
|
|
804
|
+
"""The date and time when the invoice was issued"""
|
|
805
|
+
hosted_invoice_url: str | None
|
|
806
|
+
"""The URL to view the hosted invoice"""
|
|
807
|
+
line_items: list[Any] | None
|
|
808
|
+
"""The line items on the invoice"""
|
|
809
|
+
subscription: dict[str, Any] | None
|
|
810
|
+
"""The subscription associated with the invoice"""
|
|
811
|
+
customer: dict[str, Any] | None
|
|
812
|
+
"""The customer associated with the invoice"""
|
|
813
|
+
currency: str | None
|
|
814
|
+
"""The currency of the invoice"""
|
|
815
|
+
invoice_number: str | None
|
|
816
|
+
"""The invoice number"""
|
|
817
|
+
metadata: dict[str, Any] | None
|
|
818
|
+
"""Additional metadata for the invoice"""
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
class InvoicesInFilter(TypedDict, total=False):
|
|
822
|
+
"""Available fields for 'in' condition (values are lists)."""
|
|
823
|
+
id: list[str]
|
|
824
|
+
"""The unique identifier of the invoice"""
|
|
825
|
+
created_at: list[str]
|
|
826
|
+
"""The date and time when the invoice was created"""
|
|
827
|
+
invoice_date: list[str]
|
|
828
|
+
"""The date of the invoice"""
|
|
829
|
+
due_date: list[str]
|
|
830
|
+
"""The due date for the invoice"""
|
|
831
|
+
invoice_pdf: list[str]
|
|
832
|
+
"""The URL to download the PDF version of the invoice"""
|
|
833
|
+
subtotal: list[str]
|
|
834
|
+
"""The subtotal amount of the invoice"""
|
|
835
|
+
total: list[str]
|
|
836
|
+
"""The total amount of the invoice"""
|
|
837
|
+
amount_due: list[str]
|
|
838
|
+
"""The amount due on the invoice"""
|
|
839
|
+
status: list[str]
|
|
840
|
+
"""The current status of the invoice"""
|
|
841
|
+
memo: list[str]
|
|
842
|
+
"""Any additional notes or comments on the invoice"""
|
|
843
|
+
paid_at: list[str]
|
|
844
|
+
"""The date and time when the invoice was paid"""
|
|
845
|
+
issued_at: list[str]
|
|
846
|
+
"""The date and time when the invoice was issued"""
|
|
847
|
+
hosted_invoice_url: list[str]
|
|
848
|
+
"""The URL to view the hosted invoice"""
|
|
849
|
+
line_items: list[list[Any]]
|
|
850
|
+
"""The line items on the invoice"""
|
|
851
|
+
subscription: list[dict[str, Any]]
|
|
852
|
+
"""The subscription associated with the invoice"""
|
|
853
|
+
customer: list[dict[str, Any]]
|
|
854
|
+
"""The customer associated with the invoice"""
|
|
855
|
+
currency: list[str]
|
|
856
|
+
"""The currency of the invoice"""
|
|
857
|
+
invoice_number: list[str]
|
|
858
|
+
"""The invoice number"""
|
|
859
|
+
metadata: list[dict[str, Any]]
|
|
860
|
+
"""Additional metadata for the invoice"""
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
class InvoicesAnyValueFilter(TypedDict, total=False):
|
|
864
|
+
"""Available fields with Any value type. Used for 'contains' and 'any' conditions."""
|
|
865
|
+
id: Any
|
|
866
|
+
"""The unique identifier of the invoice"""
|
|
867
|
+
created_at: Any
|
|
868
|
+
"""The date and time when the invoice was created"""
|
|
869
|
+
invoice_date: Any
|
|
870
|
+
"""The date of the invoice"""
|
|
871
|
+
due_date: Any
|
|
872
|
+
"""The due date for the invoice"""
|
|
873
|
+
invoice_pdf: Any
|
|
874
|
+
"""The URL to download the PDF version of the invoice"""
|
|
875
|
+
subtotal: Any
|
|
876
|
+
"""The subtotal amount of the invoice"""
|
|
877
|
+
total: Any
|
|
878
|
+
"""The total amount of the invoice"""
|
|
879
|
+
amount_due: Any
|
|
880
|
+
"""The amount due on the invoice"""
|
|
881
|
+
status: Any
|
|
882
|
+
"""The current status of the invoice"""
|
|
883
|
+
memo: Any
|
|
884
|
+
"""Any additional notes or comments on the invoice"""
|
|
885
|
+
paid_at: Any
|
|
886
|
+
"""The date and time when the invoice was paid"""
|
|
887
|
+
issued_at: Any
|
|
888
|
+
"""The date and time when the invoice was issued"""
|
|
889
|
+
hosted_invoice_url: Any
|
|
890
|
+
"""The URL to view the hosted invoice"""
|
|
891
|
+
line_items: Any
|
|
892
|
+
"""The line items on the invoice"""
|
|
893
|
+
subscription: Any
|
|
894
|
+
"""The subscription associated with the invoice"""
|
|
895
|
+
customer: Any
|
|
896
|
+
"""The customer associated with the invoice"""
|
|
897
|
+
currency: Any
|
|
898
|
+
"""The currency of the invoice"""
|
|
899
|
+
invoice_number: Any
|
|
900
|
+
"""The invoice number"""
|
|
901
|
+
metadata: Any
|
|
902
|
+
"""Additional metadata for the invoice"""
|
|
903
|
+
|
|
904
|
+
|
|
905
|
+
class InvoicesStringFilter(TypedDict, total=False):
|
|
906
|
+
"""String fields for text search conditions (like, fuzzy, keyword)."""
|
|
907
|
+
id: str
|
|
908
|
+
"""The unique identifier of the invoice"""
|
|
909
|
+
created_at: str
|
|
910
|
+
"""The date and time when the invoice was created"""
|
|
911
|
+
invoice_date: str
|
|
912
|
+
"""The date of the invoice"""
|
|
913
|
+
due_date: str
|
|
914
|
+
"""The due date for the invoice"""
|
|
915
|
+
invoice_pdf: str
|
|
916
|
+
"""The URL to download the PDF version of the invoice"""
|
|
917
|
+
subtotal: str
|
|
918
|
+
"""The subtotal amount of the invoice"""
|
|
919
|
+
total: str
|
|
920
|
+
"""The total amount of the invoice"""
|
|
921
|
+
amount_due: str
|
|
922
|
+
"""The amount due on the invoice"""
|
|
923
|
+
status: str
|
|
924
|
+
"""The current status of the invoice"""
|
|
925
|
+
memo: str
|
|
926
|
+
"""Any additional notes or comments on the invoice"""
|
|
927
|
+
paid_at: str
|
|
928
|
+
"""The date and time when the invoice was paid"""
|
|
929
|
+
issued_at: str
|
|
930
|
+
"""The date and time when the invoice was issued"""
|
|
931
|
+
hosted_invoice_url: str
|
|
932
|
+
"""The URL to view the hosted invoice"""
|
|
933
|
+
line_items: str
|
|
934
|
+
"""The line items on the invoice"""
|
|
935
|
+
subscription: str
|
|
936
|
+
"""The subscription associated with the invoice"""
|
|
937
|
+
customer: str
|
|
938
|
+
"""The customer associated with the invoice"""
|
|
939
|
+
currency: str
|
|
940
|
+
"""The currency of the invoice"""
|
|
941
|
+
invoice_number: str
|
|
942
|
+
"""The invoice number"""
|
|
943
|
+
metadata: str
|
|
944
|
+
"""Additional metadata for the invoice"""
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
class InvoicesSortFilter(TypedDict, total=False):
|
|
948
|
+
"""Available fields for sorting invoices search results."""
|
|
949
|
+
id: AirbyteSortOrder
|
|
950
|
+
"""The unique identifier of the invoice"""
|
|
951
|
+
created_at: AirbyteSortOrder
|
|
952
|
+
"""The date and time when the invoice was created"""
|
|
953
|
+
invoice_date: AirbyteSortOrder
|
|
954
|
+
"""The date of the invoice"""
|
|
955
|
+
due_date: AirbyteSortOrder
|
|
956
|
+
"""The due date for the invoice"""
|
|
957
|
+
invoice_pdf: AirbyteSortOrder
|
|
958
|
+
"""The URL to download the PDF version of the invoice"""
|
|
959
|
+
subtotal: AirbyteSortOrder
|
|
960
|
+
"""The subtotal amount of the invoice"""
|
|
961
|
+
total: AirbyteSortOrder
|
|
962
|
+
"""The total amount of the invoice"""
|
|
963
|
+
amount_due: AirbyteSortOrder
|
|
964
|
+
"""The amount due on the invoice"""
|
|
965
|
+
status: AirbyteSortOrder
|
|
966
|
+
"""The current status of the invoice"""
|
|
967
|
+
memo: AirbyteSortOrder
|
|
968
|
+
"""Any additional notes or comments on the invoice"""
|
|
969
|
+
paid_at: AirbyteSortOrder
|
|
970
|
+
"""The date and time when the invoice was paid"""
|
|
971
|
+
issued_at: AirbyteSortOrder
|
|
972
|
+
"""The date and time when the invoice was issued"""
|
|
973
|
+
hosted_invoice_url: AirbyteSortOrder
|
|
974
|
+
"""The URL to view the hosted invoice"""
|
|
975
|
+
line_items: AirbyteSortOrder
|
|
976
|
+
"""The line items on the invoice"""
|
|
977
|
+
subscription: AirbyteSortOrder
|
|
978
|
+
"""The subscription associated with the invoice"""
|
|
979
|
+
customer: AirbyteSortOrder
|
|
980
|
+
"""The customer associated with the invoice"""
|
|
981
|
+
currency: AirbyteSortOrder
|
|
982
|
+
"""The currency of the invoice"""
|
|
983
|
+
invoice_number: AirbyteSortOrder
|
|
984
|
+
"""The invoice number"""
|
|
985
|
+
metadata: AirbyteSortOrder
|
|
986
|
+
"""Additional metadata for the invoice"""
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
# Entity-specific condition types for invoices
|
|
990
|
+
class InvoicesEqCondition(TypedDict, total=False):
|
|
991
|
+
"""Equal to: field equals value."""
|
|
992
|
+
eq: InvoicesSearchFilter
|
|
993
|
+
|
|
994
|
+
|
|
995
|
+
class InvoicesNeqCondition(TypedDict, total=False):
|
|
996
|
+
"""Not equal to: field does not equal value."""
|
|
997
|
+
neq: InvoicesSearchFilter
|
|
998
|
+
|
|
999
|
+
|
|
1000
|
+
class InvoicesGtCondition(TypedDict, total=False):
|
|
1001
|
+
"""Greater than: field > value."""
|
|
1002
|
+
gt: InvoicesSearchFilter
|
|
1003
|
+
|
|
1004
|
+
|
|
1005
|
+
class InvoicesGteCondition(TypedDict, total=False):
|
|
1006
|
+
"""Greater than or equal: field >= value."""
|
|
1007
|
+
gte: InvoicesSearchFilter
|
|
1008
|
+
|
|
1009
|
+
|
|
1010
|
+
class InvoicesLtCondition(TypedDict, total=False):
|
|
1011
|
+
"""Less than: field < value."""
|
|
1012
|
+
lt: InvoicesSearchFilter
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
class InvoicesLteCondition(TypedDict, total=False):
|
|
1016
|
+
"""Less than or equal: field <= value."""
|
|
1017
|
+
lte: InvoicesSearchFilter
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
class InvoicesLikeCondition(TypedDict, total=False):
|
|
1021
|
+
"""Partial string match with % wildcards."""
|
|
1022
|
+
like: InvoicesStringFilter
|
|
1023
|
+
|
|
1024
|
+
|
|
1025
|
+
class InvoicesFuzzyCondition(TypedDict, total=False):
|
|
1026
|
+
"""Ordered word text match (case-insensitive)."""
|
|
1027
|
+
fuzzy: InvoicesStringFilter
|
|
1028
|
+
|
|
1029
|
+
|
|
1030
|
+
class InvoicesKeywordCondition(TypedDict, total=False):
|
|
1031
|
+
"""Keyword text match (any word present)."""
|
|
1032
|
+
keyword: InvoicesStringFilter
|
|
1033
|
+
|
|
1034
|
+
|
|
1035
|
+
class InvoicesContainsCondition(TypedDict, total=False):
|
|
1036
|
+
"""Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
|
|
1037
|
+
contains: InvoicesAnyValueFilter
|
|
1038
|
+
|
|
1039
|
+
|
|
1040
|
+
# Reserved keyword conditions using functional TypedDict syntax
|
|
1041
|
+
InvoicesInCondition = TypedDict("InvoicesInCondition", {"in": InvoicesInFilter}, total=False)
|
|
1042
|
+
"""In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
|
|
1043
|
+
|
|
1044
|
+
InvoicesNotCondition = TypedDict("InvoicesNotCondition", {"not": "InvoicesCondition"}, total=False)
|
|
1045
|
+
"""Negates the nested condition."""
|
|
1046
|
+
|
|
1047
|
+
InvoicesAndCondition = TypedDict("InvoicesAndCondition", {"and": "list[InvoicesCondition]"}, total=False)
|
|
1048
|
+
"""True if all nested conditions are true."""
|
|
1049
|
+
|
|
1050
|
+
InvoicesOrCondition = TypedDict("InvoicesOrCondition", {"or": "list[InvoicesCondition]"}, total=False)
|
|
1051
|
+
"""True if any nested condition is true."""
|
|
1052
|
+
|
|
1053
|
+
InvoicesAnyCondition = TypedDict("InvoicesAnyCondition", {"any": InvoicesAnyValueFilter}, total=False)
|
|
1054
|
+
"""Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
|
|
1055
|
+
|
|
1056
|
+
# Union of all invoices condition types
|
|
1057
|
+
InvoicesCondition = (
|
|
1058
|
+
InvoicesEqCondition
|
|
1059
|
+
| InvoicesNeqCondition
|
|
1060
|
+
| InvoicesGtCondition
|
|
1061
|
+
| InvoicesGteCondition
|
|
1062
|
+
| InvoicesLtCondition
|
|
1063
|
+
| InvoicesLteCondition
|
|
1064
|
+
| InvoicesInCondition
|
|
1065
|
+
| InvoicesLikeCondition
|
|
1066
|
+
| InvoicesFuzzyCondition
|
|
1067
|
+
| InvoicesKeywordCondition
|
|
1068
|
+
| InvoicesContainsCondition
|
|
1069
|
+
| InvoicesNotCondition
|
|
1070
|
+
| InvoicesAndCondition
|
|
1071
|
+
| InvoicesOrCondition
|
|
1072
|
+
| InvoicesAnyCondition
|
|
1073
|
+
)
|
|
1074
|
+
|
|
1075
|
+
|
|
1076
|
+
class InvoicesSearchQuery(TypedDict, total=False):
|
|
1077
|
+
"""Search query for invoices entity."""
|
|
1078
|
+
filter: InvoicesCondition
|
|
1079
|
+
sort: list[InvoicesSortFilter]
|
|
1080
|
+
|
|
1081
|
+
|
|
1082
|
+
|
|
1083
|
+
# ===== SEARCH PARAMS =====
|
|
1084
|
+
|
|
1085
|
+
class AirbyteSearchParams(TypedDict, total=False):
|
|
1086
|
+
"""Parameters for Airbyte cache search operations (generic, use entity-specific query types for better type hints)."""
|
|
1087
|
+
query: dict[str, Any]
|
|
1088
|
+
limit: int
|
|
1089
|
+
cursor: str
|
|
1090
|
+
fields: list[list[str]]
|