airbyte-agent-orb 0.1.6__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 (58) hide show
  1. airbyte_agent_orb/__init__.py +139 -0
  2. airbyte_agent_orb/_vendored/__init__.py +1 -0
  3. airbyte_agent_orb/_vendored/connector_sdk/__init__.py +82 -0
  4. airbyte_agent_orb/_vendored/connector_sdk/auth_strategies.py +1171 -0
  5. airbyte_agent_orb/_vendored/connector_sdk/auth_template.py +135 -0
  6. airbyte_agent_orb/_vendored/connector_sdk/cloud_utils/__init__.py +5 -0
  7. airbyte_agent_orb/_vendored/connector_sdk/cloud_utils/client.py +338 -0
  8. airbyte_agent_orb/_vendored/connector_sdk/connector_model_loader.py +1121 -0
  9. airbyte_agent_orb/_vendored/connector_sdk/constants.py +78 -0
  10. airbyte_agent_orb/_vendored/connector_sdk/exceptions.py +23 -0
  11. airbyte_agent_orb/_vendored/connector_sdk/executor/__init__.py +31 -0
  12. airbyte_agent_orb/_vendored/connector_sdk/executor/hosted_executor.py +230 -0
  13. airbyte_agent_orb/_vendored/connector_sdk/executor/local_executor.py +1848 -0
  14. airbyte_agent_orb/_vendored/connector_sdk/executor/models.py +202 -0
  15. airbyte_agent_orb/_vendored/connector_sdk/extensions.py +693 -0
  16. airbyte_agent_orb/_vendored/connector_sdk/http/__init__.py +37 -0
  17. airbyte_agent_orb/_vendored/connector_sdk/http/adapters/__init__.py +9 -0
  18. airbyte_agent_orb/_vendored/connector_sdk/http/adapters/httpx_adapter.py +260 -0
  19. airbyte_agent_orb/_vendored/connector_sdk/http/config.py +98 -0
  20. airbyte_agent_orb/_vendored/connector_sdk/http/exceptions.py +119 -0
  21. airbyte_agent_orb/_vendored/connector_sdk/http/protocols.py +114 -0
  22. airbyte_agent_orb/_vendored/connector_sdk/http/response.py +104 -0
  23. airbyte_agent_orb/_vendored/connector_sdk/http_client.py +693 -0
  24. airbyte_agent_orb/_vendored/connector_sdk/introspection.py +481 -0
  25. airbyte_agent_orb/_vendored/connector_sdk/logging/__init__.py +11 -0
  26. airbyte_agent_orb/_vendored/connector_sdk/logging/logger.py +273 -0
  27. airbyte_agent_orb/_vendored/connector_sdk/logging/types.py +93 -0
  28. airbyte_agent_orb/_vendored/connector_sdk/observability/__init__.py +11 -0
  29. airbyte_agent_orb/_vendored/connector_sdk/observability/config.py +179 -0
  30. airbyte_agent_orb/_vendored/connector_sdk/observability/models.py +19 -0
  31. airbyte_agent_orb/_vendored/connector_sdk/observability/redactor.py +81 -0
  32. airbyte_agent_orb/_vendored/connector_sdk/observability/session.py +103 -0
  33. airbyte_agent_orb/_vendored/connector_sdk/performance/__init__.py +6 -0
  34. airbyte_agent_orb/_vendored/connector_sdk/performance/instrumentation.py +57 -0
  35. airbyte_agent_orb/_vendored/connector_sdk/performance/metrics.py +93 -0
  36. airbyte_agent_orb/_vendored/connector_sdk/schema/__init__.py +75 -0
  37. airbyte_agent_orb/_vendored/connector_sdk/schema/base.py +212 -0
  38. airbyte_agent_orb/_vendored/connector_sdk/schema/components.py +244 -0
  39. airbyte_agent_orb/_vendored/connector_sdk/schema/connector.py +120 -0
  40. airbyte_agent_orb/_vendored/connector_sdk/schema/extensions.py +301 -0
  41. airbyte_agent_orb/_vendored/connector_sdk/schema/operations.py +156 -0
  42. airbyte_agent_orb/_vendored/connector_sdk/schema/security.py +241 -0
  43. airbyte_agent_orb/_vendored/connector_sdk/secrets.py +182 -0
  44. airbyte_agent_orb/_vendored/connector_sdk/telemetry/__init__.py +10 -0
  45. airbyte_agent_orb/_vendored/connector_sdk/telemetry/config.py +32 -0
  46. airbyte_agent_orb/_vendored/connector_sdk/telemetry/events.py +59 -0
  47. airbyte_agent_orb/_vendored/connector_sdk/telemetry/tracker.py +155 -0
  48. airbyte_agent_orb/_vendored/connector_sdk/types.py +274 -0
  49. airbyte_agent_orb/_vendored/connector_sdk/utils.py +127 -0
  50. airbyte_agent_orb/_vendored/connector_sdk/validation.py +997 -0
  51. airbyte_agent_orb/_vendored/connector_sdk/validation_replication.py +970 -0
  52. airbyte_agent_orb/connector.py +1179 -0
  53. airbyte_agent_orb/connector_model.py +2163 -0
  54. airbyte_agent_orb/models.py +532 -0
  55. airbyte_agent_orb/types.py +1090 -0
  56. airbyte_agent_orb-0.1.6.dist-info/METADATA +153 -0
  57. airbyte_agent_orb-0.1.6.dist-info/RECORD +58 -0
  58. airbyte_agent_orb-0.1.6.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]]