reconify-python 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.
reconify/models.py ADDED
@@ -0,0 +1,1067 @@
1
+ """Complete Pydantic v2 model surface derived from the Reconify OpenAPI schemas."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from datetime import datetime
6
+ from enum import Enum
7
+ from typing import Any
8
+
9
+ from pydantic import BaseModel, ConfigDict, Field
10
+
11
+
12
+ class TolerantStrEnum(str, Enum):
13
+ @classmethod
14
+ def _missing_(cls, value: object) -> TolerantStrEnum | None:
15
+ if isinstance(value, str):
16
+ member = str.__new__(cls, value)
17
+ member._name_ = f"UNKNOWN_{value.upper().replace('-', '_')}"
18
+ member._value_ = value
19
+ cls._value2member_map_[value] = member
20
+ return member
21
+ return None
22
+
23
+
24
+ class ResponseModel(BaseModel):
25
+ model_config = ConfigDict(extra="allow", populate_by_name=True, validate_assignment=True)
26
+
27
+
28
+ class RequestModel(BaseModel):
29
+ model_config = ConfigDict(extra="forbid", populate_by_name=True, validate_assignment=True)
30
+
31
+
32
+ class AdjustmentRequestBodyAdjustmentType(TolerantStrEnum):
33
+ FEE = "fee"
34
+ REVERSAL = "reversal"
35
+ RECLASSIFICATION = "reclassification"
36
+ MANUAL_CORRECTION = "manual_correction"
37
+ WRITE_OFF = "write_off"
38
+ SPLIT_ALLOCATION = "split_allocation"
39
+
40
+
41
+ class EventWindowBasis(TolerantStrEnum):
42
+ RECEIVED_AT = "received_at"
43
+ OCCURRED_AT = "occurred_at"
44
+
45
+
46
+ class IngestRowDirection(TolerantStrEnum):
47
+ DEBIT = "debit"
48
+ CREDIT = "credit"
49
+
50
+
51
+ class IngestRowStatus(TolerantStrEnum):
52
+ PENDING = "pending"
53
+ POSTED = "posted"
54
+ FAILED = "failed"
55
+ REVERSED = "reversed"
56
+ VOID = "void"
57
+
58
+
59
+ class PublicAdjustmentStatus(TolerantStrEnum):
60
+ PROPOSED = "proposed"
61
+ APPROVED = "approved"
62
+ APPLIED = "applied"
63
+ REVERSED = "reversed"
64
+ REJECTED = "rejected"
65
+
66
+
67
+ class PublicSignoffRole(TolerantStrEnum):
68
+ PREPARED_BY = "prepared_by"
69
+ REVIEWED_BY = "reviewed_by"
70
+ APPROVED_BY = "approved_by"
71
+
72
+
73
+ class ReconciliationScheduleFrequency(TolerantStrEnum):
74
+ ONE_TIME = "one_time"
75
+ DAILY = "daily"
76
+ WEEKLY = "weekly"
77
+ MONTHLY = "monthly"
78
+
79
+
80
+ class ReconciliationScheduleStatus(TolerantStrEnum):
81
+ ACTIVE = "active"
82
+ PAUSED = "paused"
83
+
84
+
85
+ class ReconciliationScheduleWindowBasis(TolerantStrEnum):
86
+ RECEIVED_AT = "received_at"
87
+ OCCURRED_AT = "occurred_at"
88
+
89
+
90
+ class ScheduleRequestBodyFrequency(TolerantStrEnum):
91
+ ONE_TIME = "one_time"
92
+ DAILY = "daily"
93
+ WEEKLY = "weekly"
94
+ MONTHLY = "monthly"
95
+
96
+
97
+ class ScheduleRequestBodyStatus(TolerantStrEnum):
98
+ ACTIVE = "active"
99
+ PAUSED = "paused"
100
+
101
+
102
+ class ScheduleRequestBodyWindowBasis(TolerantStrEnum):
103
+ RECEIVED_AT = "received_at"
104
+ OCCURRED_AT = "occurred_at"
105
+
106
+
107
+ class ScheduleUpdateRequestBodyFrequency(TolerantStrEnum):
108
+ ONE_TIME = "one_time"
109
+ DAILY = "daily"
110
+ WEEKLY = "weekly"
111
+ MONTHLY = "monthly"
112
+
113
+
114
+ class ScheduleUpdateRequestBodyStatus(TolerantStrEnum):
115
+ ACTIVE = "active"
116
+ PAUSED = "paused"
117
+
118
+
119
+ class ScheduleUpdateRequestBodyWindowBasis(TolerantStrEnum):
120
+ RECEIVED_AT = "received_at"
121
+ OCCURRED_AT = "occurred_at"
122
+
123
+
124
+ class SourceRefRole(TolerantStrEnum):
125
+ LEFT = "left"
126
+ RIGHT = "right"
127
+
128
+
129
+ class TransactionDetailResourceStatus(TolerantStrEnum):
130
+ PENDING = "pending"
131
+ POSTED = "posted"
132
+ SUPERSEDED = "superseded"
133
+ REJECTED = "rejected"
134
+
135
+
136
+ class WalletTransactionStatus(TolerantStrEnum):
137
+ PENDING = "pending"
138
+ POSTED = "posted"
139
+ SUPERSEDED = "superseded"
140
+ REJECTED = "rejected"
141
+
142
+
143
+ class AcceptedResult(ResponseModel):
144
+ index: int = Field(alias="index")
145
+ source_event_id: str = Field(alias="sourceEventId")
146
+
147
+
148
+ class Activity(ResponseModel):
149
+ action: str = Field(alias="action")
150
+ actor_user_id: str | None = Field(default=None, alias="actorUserId", exclude=False)
151
+ created_at: datetime = Field(alias="createdAt")
152
+ event_id: str | None = Field(default=None, alias="eventId", exclude=False)
153
+ finding_id: str | None = Field(default=None, alias="findingId", exclude=False)
154
+ id: str = Field(alias="id")
155
+ metadata: dict[str, Any] = Field(alias="metadata")
156
+ operation_id: str | None = Field(default=None, alias="operationId", exclude=False)
157
+
158
+
159
+ class AdjustmentOutputBody(ResponseModel):
160
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
161
+ adjustment: PublicAdjustment = Field(alias="adjustment")
162
+
163
+
164
+ class AdjustmentRequestBody(RequestModel):
165
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
166
+ adjustment_type: AdjustmentRequestBodyAdjustmentType = Field(alias="adjustmentType")
167
+ amount_minor: int | None = Field(default=None, alias="amountMinor", exclude=False)
168
+ currency: str | None = Field(default=None, alias="currency", exclude=False)
169
+ note: str | None = Field(default=None, alias="note", exclude=False)
170
+ resolution_reason: str | None = Field(default=None, alias="resolutionReason", exclude=False)
171
+ result_item_id: int | None = Field(default=None, alias="resultItemId", exclude=False)
172
+
173
+
174
+ class AlertLink(ResponseModel):
175
+ channel: str = Field(alias="channel")
176
+ created_at: datetime = Field(alias="createdAt")
177
+ finding_id: str = Field(alias="findingId")
178
+ id: str = Field(alias="id")
179
+ sent_at: datetime | None = Field(default=None, alias="sentAt", exclude=False)
180
+ status: str = Field(alias="status")
181
+ transition: str = Field(alias="transition")
182
+
183
+
184
+ class AlertRule(ResponseModel):
185
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
186
+ breach_enabled: bool = Field(alias="breachEnabled")
187
+ channels: list[str] | None = Field(alias="channels")
188
+ control_id: str = Field(alias="controlId")
189
+ dedup_window_seconds: int = Field(alias="dedupWindowSeconds")
190
+ destinations: dict[str, Any] = Field(alias="destinations")
191
+ resolution_enabled: bool = Field(alias="resolutionEnabled")
192
+ severity_min: str = Field(alias="severityMin")
193
+ suppressed_until: datetime | None = Field(default=None, alias="suppressedUntil", exclude=False)
194
+ suppression_reason: str | None = Field(default=None, alias="suppressionReason", exclude=False)
195
+
196
+
197
+ class AlertRulesOutputBody(ResponseModel):
198
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
199
+ rules: list[AlertRule] | None = Field(alias="rules")
200
+
201
+
202
+ class BatchResponse(ResponseModel):
203
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
204
+ accepted: list[AcceptedResult] | None = Field(alias="accepted")
205
+ rejected: list[RejectedResult] | None = Field(alias="rejected")
206
+
207
+
208
+ class CreateReconciliationInputBody(RequestModel):
209
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
210
+ event_config: EventReconciliationConfig | None = Field(
211
+ default=None, alias="event_config", exclude=False
212
+ )
213
+ ledger_config: LedgerConfig | None = Field(default=None, alias="ledger_config", exclude=False)
214
+ name: str | None = Field(default=None, alias="name", exclude=False)
215
+
216
+
217
+ class CreateSessionRequest(RequestModel):
218
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
219
+ control_id: str = Field(alias="controlId")
220
+
221
+
222
+ class CreateSourceInputBody(RequestModel):
223
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
224
+ name: str = Field(alias="name")
225
+ schema_mapping: SchemaMap | None = Field(default=None, alias="schemaMapping", exclude=False)
226
+
227
+
228
+ class CreateSourceRequest(RequestModel):
229
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
230
+ config: dict[str, Any] | None = Field(default=None, alias="config", exclude=False)
231
+ name: str = Field(alias="name")
232
+ source_type: str = Field(alias="sourceType")
233
+
234
+
235
+ class DeliveriesOutputBody(ResponseModel):
236
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
237
+ deliveries: list[Delivery] | None = Field(alias="deliveries")
238
+
239
+
240
+ class Delivery(ResponseModel):
241
+ attempt_count: int = Field(alias="attemptCount")
242
+ channel: str = Field(alias="channel")
243
+ destination: str = Field(alias="destination")
244
+ id: str = Field(alias="id")
245
+ last_error_code: str | None = Field(default=None, alias="lastErrorCode", exclude=False)
246
+ next_attempt_at: datetime = Field(alias="nextAttemptAt")
247
+ sent_at: datetime | None = Field(default=None, alias="sentAt", exclude=False)
248
+ status: str = Field(alias="status")
249
+ transition: str = Field(alias="transition")
250
+
251
+
252
+ class ErrorDetail(ResponseModel):
253
+ location: str | None = Field(default=None, alias="location", exclude=False)
254
+ message: str | None = Field(default=None, alias="message", exclude=False)
255
+ value: Any | None = Field(default=None, alias="value", exclude=False)
256
+
257
+
258
+ class ErrorModel(ResponseModel):
259
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
260
+ detail: str | None = Field(default=None, alias="detail", exclude=False)
261
+ errors: list[ErrorDetail] | None = Field(default=None, alias="errors", exclude=False)
262
+ instance: str | None = Field(default=None, alias="instance", exclude=False)
263
+ status: int | None = Field(default=None, alias="status", exclude=False)
264
+ title: str | None = Field(default=None, alias="title", exclude=False)
265
+ type: str | None = Field(default=None, alias="type", exclude=False)
266
+
267
+
268
+ class Event(ResponseModel):
269
+ amount_minor: int = Field(alias="amountMinor")
270
+ applied: bool = Field(alias="applied")
271
+ balance_minor: int | None = Field(default=None, alias="balanceMinor", exclude=False)
272
+ canonical_hash: str = Field(alias="canonicalHash")
273
+ correlation_namespace: str | None = Field(
274
+ default=None, alias="correlationNamespace", exclude=False
275
+ )
276
+ currency: str = Field(alias="currency")
277
+ entity_reference: str | None = Field(default=None, alias="entityReference", exclude=False)
278
+ event_schema_version: int = Field(alias="eventSchemaVersion")
279
+ event_type: str = Field(alias="eventType")
280
+ external_reference: str | None = Field(default=None, alias="externalReference", exclude=False)
281
+ finding_id: str | None = Field(default=None, alias="findingId", exclude=False)
282
+ id: str = Field(alias="id")
283
+ occurred_at: datetime = Field(alias="occurredAt")
284
+ operation_id: str | None = Field(default=None, alias="operationId", exclude=False)
285
+ operation_type: str | None = Field(default=None, alias="operationType", exclude=False)
286
+ processing_status: str = Field(alias="processingStatus")
287
+ provider_reference: str | None = Field(default=None, alias="providerReference", exclude=False)
288
+ received_at: datetime = Field(alias="receivedAt")
289
+ source_event_id: str = Field(alias="sourceEventId")
290
+ source_id: str = Field(alias="sourceId")
291
+ supersedes_event_id: str | None = Field(default=None, alias="supersedesEventId", exclude=False)
292
+ wallet_id: str | None = Field(default=None, alias="walletId", exclude=False)
293
+
294
+
295
+ class EventDetail(ResponseModel):
296
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
297
+ event: Event = Field(alias="event")
298
+ metadata: dict[str, Any] = Field(alias="metadata")
299
+ payload: dict[str, Any] = Field(alias="payload")
300
+ timeline: list[EventTimelineItem] | None = Field(alias="timeline")
301
+
302
+
303
+ class EventPage(ResponseModel):
304
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
305
+ events: list[Event] | None = Field(alias="events")
306
+ limit: int = Field(alias="limit")
307
+ next_cursor: str | None = Field(default=None, alias="nextCursor", exclude=False)
308
+
309
+
310
+ class EventReconciliationConfig(ResponseModel):
311
+ anchor_source_id: str = Field(alias="anchor_source_id")
312
+ correlation_namespace: str | None = Field(
313
+ default=None, alias="correlation_namespace", exclude=False
314
+ )
315
+ source_ids: list[str] | None = Field(alias="source_ids")
316
+ window: EventWindow = Field(alias="window")
317
+
318
+
319
+ class EventRevealOutputBody(ResponseModel):
320
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
321
+ field: str = Field(alias="field")
322
+ value: Any = Field(alias="value")
323
+
324
+
325
+ class EventTimelineItem(ResponseModel):
326
+ action: str = Field(alias="action")
327
+ created_at: datetime = Field(alias="createdAt")
328
+ kind: str = Field(alias="kind")
329
+
330
+
331
+ class EventWindow(ResponseModel):
332
+ basis: EventWindowBasis = Field(alias="basis")
333
+ end: str = Field(alias="end")
334
+ start: str = Field(alias="start")
335
+
336
+
337
+ class EvidenceOutputBody(ResponseModel):
338
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
339
+ evidence: PublicEvidence = Field(alias="evidence")
340
+
341
+
342
+ class EvidenceRequestBody(RequestModel):
343
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
344
+ checksum_sha256: str | None = Field(default=None, alias="checksumSha256", exclude=False)
345
+ entity_id: str = Field(alias="entityId")
346
+ entity_type: str = Field(alias="entityType")
347
+ evidence_type: str = Field(alias="evidenceType")
348
+ metadata: dict[str, Any] | None = Field(default=None, alias="metadata", exclude=False)
349
+ storage_path: str | None = Field(default=None, alias="storagePath", exclude=False)
350
+
351
+
352
+ class IngestError(ResponseModel):
353
+ idempotency_key: str | None = Field(default=None, alias="idempotencyKey", exclude=False)
354
+ index: int = Field(alias="index")
355
+ message: str = Field(alias="message")
356
+
357
+
358
+ class IngestEventsInputBody(RequestModel):
359
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
360
+ events: list[PublicEvent] | None = Field(alias="events", min_length=1, max_length=500)
361
+
362
+
363
+ class IngestRow(RequestModel):
364
+ amount_minor: int = Field(alias="amountMinor")
365
+ currency: str = Field(alias="currency")
366
+ date: str = Field(alias="date")
367
+ direction: IngestRowDirection = Field(alias="direction")
368
+ idempotency_key: str = Field(alias="idempotencyKey")
369
+ metadata: Any | None = Field(default=None, alias="metadata", exclude=False)
370
+ name: str | None = Field(default=None, alias="name", exclude=False)
371
+ period_key: str | None = Field(default=None, alias="periodKey", exclude=False)
372
+ raw: Any | None = Field(default=None, alias="raw", exclude=False)
373
+ reference: str | None = Field(default=None, alias="reference", exclude=False)
374
+ status: IngestRowStatus | None = Field(default=None, alias="status", exclude=False)
375
+ transaction_type: str | None = Field(default=None, alias="transactionType", exclude=False)
376
+ value_date: str | None = Field(default=None, alias="valueDate", exclude=False)
377
+
378
+
379
+ class IngestTransactionsInputBody(RequestModel):
380
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
381
+ transactions: list[IngestRow] | None = Field(
382
+ alias="transactions", min_length=1, max_length=5000
383
+ )
384
+
385
+
386
+ class IngestTransactionsOutputBody(ResponseModel):
387
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
388
+ duplicates: int = Field(alias="duplicates")
389
+ errors: list[IngestError] | None = Field(default=None, alias="errors", exclude=False)
390
+ ingested: int = Field(alias="ingested")
391
+
392
+
393
+ class IntegritySource(ResponseModel):
394
+ id: str = Field(alias="id")
395
+ name: str = Field(alias="name")
396
+ source_type: str = Field(alias="sourceType")
397
+
398
+
399
+ class Issue(ResponseModel):
400
+ affected_transaction_count: int | None = Field(
401
+ default=None, alias="affectedTransactionCount", exclude=False
402
+ )
403
+ affected_wallet_count: int | None = Field(
404
+ default=None, alias="affectedWalletCount", exclude=False
405
+ )
406
+ assigned_to: str | None = Field(default=None, alias="assignedTo", exclude=False)
407
+ control_id: str | None = Field(default=None, alias="controlId", exclude=False)
408
+ currency: str | None = Field(default=None, alias="currency", exclude=False)
409
+ event_id: str | None = Field(default=None, alias="eventId", exclude=False)
410
+ exposure_minor: int | None = Field(default=None, alias="exposureMinor", exclude=False)
411
+ id: str = Field(alias="id")
412
+ kind: str = Field(alias="kind")
413
+ opened_at: datetime = Field(alias="openedAt")
414
+ operation_id: str | None = Field(default=None, alias="operationId", exclude=False)
415
+ reason: str = Field(alias="reason")
416
+ resolved_at: datetime | None = Field(default=None, alias="resolvedAt", exclude=False)
417
+ severity: str = Field(alias="severity")
418
+ system_outcome: str | None = Field(default=None, alias="systemOutcome", exclude=False)
419
+ workflow_status: str = Field(alias="workflowStatus")
420
+
421
+
422
+ class IssueCounts(ResponseModel):
423
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
424
+ acknowledged: int = Field(alias="acknowledged")
425
+ failed_delivery: int = Field(alias="failedDelivery")
426
+ investigating: int = Field(alias="investigating")
427
+ open: int = Field(alias="open")
428
+ resolved: int = Field(alias="resolved")
429
+
430
+
431
+ class IssueDetail(ResponseModel):
432
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
433
+ activity: list[Activity] | None = Field(alias="activity")
434
+ deliveries: list[Delivery] | None = Field(alias="deliveries")
435
+ issue: Issue = Field(alias="issue")
436
+ notes: list[Note] | None = Field(alias="notes")
437
+
438
+
439
+ class IssuePage(ResponseModel):
440
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
441
+ issues: list[Issue] | None = Field(alias="issues")
442
+ limit: int = Field(alias="limit")
443
+ next_cursor: str | None = Field(default=None, alias="nextCursor", exclude=False)
444
+
445
+
446
+ class IssueUpdateInputBody(RequestModel):
447
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
448
+ assigned_to: str | None = Field(default=None, alias="assignedTo", exclude=False)
449
+ workflow_status: str | None = Field(default=None, alias="workflowStatus", exclude=False)
450
+
451
+
452
+ class LedgerConfig(ResponseModel):
453
+ period_key: str = Field(alias="period_key")
454
+ sources: list[SourceRef] | None = Field(alias="sources")
455
+
456
+
457
+ class ListAdjustmentsOutputBody(ResponseModel):
458
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
459
+ adjustments: list[PublicAdjustment] | None = Field(alias="adjustments")
460
+ limit: int = Field(alias="limit")
461
+ offset: int = Field(alias="offset")
462
+ total: int = Field(alias="total")
463
+
464
+
465
+ class ListEvidenceOutputBody(ResponseModel):
466
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
467
+ evidence: list[PublicEvidence] | None = Field(alias="evidence")
468
+
469
+
470
+ class ListIntegritySourcesOutputBody(ResponseModel):
471
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
472
+ sources: list[IntegritySource] | None = Field(alias="sources")
473
+
474
+
475
+ class ListPeriodsOutputBody(ResponseModel):
476
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
477
+ periods: list[PeriodHealth] | None = Field(alias="periods")
478
+
479
+
480
+ class ListReconciliationItemsOutputBody(ResponseModel):
481
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
482
+ category: str = Field(alias="category")
483
+ limit: int = Field(alias="limit")
484
+ offset: int = Field(alias="offset")
485
+ rows: list[PublicResultItem] | None = Field(alias="rows")
486
+ total: int = Field(alias="total")
487
+
488
+
489
+ class ListReconciliationsOutputBody(ResponseModel):
490
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
491
+ limit: int = Field(alias="limit")
492
+ offset: int = Field(alias="offset")
493
+ reconciliations: list[Reconciliation] | None = Field(alias="reconciliations")
494
+ total: int = Field(alias="total")
495
+
496
+
497
+ class ListSchedulesOutputBody(ResponseModel):
498
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
499
+ limit: int = Field(alias="limit")
500
+ offset: int = Field(alias="offset")
501
+ schedules: list[ReconciliationSchedule] | None = Field(alias="schedules")
502
+ total: int = Field(alias="total")
503
+
504
+
505
+ class ListSignoffsOutputBody(ResponseModel):
506
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
507
+ signoffs: list[PublicSignoff] | None = Field(alias="signoffs")
508
+
509
+
510
+ class ListSourcesOutputBody(ResponseModel):
511
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
512
+ limit: int = Field(alias="limit")
513
+ offset: int = Field(alias="offset")
514
+ sources: list[Source] | None = Field(alias="sources")
515
+ total: int = Field(alias="total")
516
+
517
+
518
+ class ListTransactionsOutputBody(ResponseModel):
519
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
520
+ limit: int = Field(alias="limit")
521
+ next_cursor: str | None = Field(default=None, alias="nextCursor", exclude=False)
522
+ offset: int = Field(alias="offset")
523
+ total: int = Field(alias="total")
524
+ transactions: list[Transaction] | None = Field(alias="transactions")
525
+
526
+
527
+ class Note(ResponseModel):
528
+ author_user_id: str = Field(alias="authorUserId")
529
+ body: str = Field(alias="body")
530
+ created_at: datetime = Field(alias="createdAt")
531
+ id: str = Field(alias="id")
532
+
533
+
534
+ class NoteInputBody(RequestModel):
535
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
536
+ body: str = Field(alias="body")
537
+
538
+
539
+ class PeriodHealth(ResponseModel):
540
+ currency: str = Field(alias="currency")
541
+ has_run: bool = Field(alias="hasRun")
542
+ period_key: str = Field(alias="periodKey")
543
+ total_amount_minor: int = Field(alias="totalAmountMinor")
544
+ tx_count: int = Field(alias="txCount")
545
+
546
+
547
+ class PublicAdjustment(ResponseModel):
548
+ adjustment_type: str = Field(alias="adjustmentType")
549
+ amount_minor: int | None = Field(default=None, alias="amountMinor", exclude=False)
550
+ applied_at: datetime | None = Field(default=None, alias="appliedAt", exclude=False)
551
+ approved_at: datetime | None = Field(default=None, alias="approvedAt", exclude=False)
552
+ created_at: datetime = Field(alias="createdAt")
553
+ created_by_email: str | None = Field(default=None, alias="createdByEmail", exclude=False)
554
+ currency: str | None = Field(default=None, alias="currency", exclude=False)
555
+ id: str = Field(alias="id")
556
+ note: str = Field(alias="note")
557
+ reconciliation_id: str = Field(alias="reconciliationId")
558
+ rejected_at: datetime | None = Field(default=None, alias="rejectedAt", exclude=False)
559
+ resolution_reason: str = Field(alias="resolutionReason")
560
+ result_item_id: int | None = Field(default=None, alias="resultItemId", exclude=False)
561
+ reversed_at: datetime | None = Field(default=None, alias="reversedAt", exclude=False)
562
+ status: PublicAdjustmentStatus = Field(alias="status")
563
+
564
+
565
+ class PublicEvent(ResponseModel):
566
+ amount_minor: int = Field(alias="amountMinor")
567
+ balance_minor: int | None = Field(default=None, alias="balanceMinor", exclude=False)
568
+ correlation_namespace: str | None = Field(
569
+ default=None, alias="correlationNamespace", exclude=False
570
+ )
571
+ currency: str = Field(alias="currency")
572
+ entity_reference: str | None = Field(default=None, alias="entityReference", exclude=False)
573
+ event_schema_version: int | None = Field(
574
+ default=None, alias="eventSchemaVersion", exclude=False
575
+ )
576
+ event_type: str = Field(alias="eventType")
577
+ external_reference: str | None = Field(default=None, alias="externalReference", exclude=False)
578
+ metadata: dict[str, Any] | None = Field(default=None, alias="metadata", exclude=False)
579
+ occurred_at: datetime = Field(alias="occurredAt")
580
+ operation_id: str | None = Field(default=None, alias="operationId", exclude=False)
581
+ operation_type: str | None = Field(default=None, alias="operationType", exclude=False)
582
+ provider_reference: str | None = Field(default=None, alias="providerReference", exclude=False)
583
+ source_event_id: str = Field(alias="sourceEventId")
584
+ source_id: str = Field(alias="sourceId")
585
+ supersedes_source_event_id: str | None = Field(
586
+ default=None, alias="supersedesSourceEventId", exclude=False
587
+ )
588
+ wallet_id: str | None = Field(default=None, alias="walletId", exclude=False)
589
+
590
+
591
+ class PublicEvidence(ResponseModel):
592
+ created_at: datetime = Field(alias="createdAt")
593
+ entity_id: str = Field(alias="entityId")
594
+ entity_type: str = Field(alias="entityType")
595
+ evidence_type: str = Field(alias="evidenceType")
596
+ id: str = Field(alias="id")
597
+ metadata: dict[str, Any] = Field(alias="metadata")
598
+ reconciliation_id: str = Field(alias="reconciliationId")
599
+
600
+
601
+ class PublicResultItem(ResponseModel):
602
+ amount_minor: int | None = Field(default=None, alias="amountMinor", exclude=False)
603
+ assigned_to: str | None = Field(default=None, alias="assignedTo", exclude=False)
604
+ category: str = Field(alias="category")
605
+ currency: str | None = Field(default=None, alias="currency", exclude=False)
606
+ exception_opened_at: str | None = Field(default=None, alias="exceptionOpenedAt", exclude=False)
607
+ exception_status: str = Field(alias="exceptionStatus")
608
+ id: int = Field(alias="id")
609
+ is_escalated: bool = Field(alias="isEscalated")
610
+ left_name: str | None = Field(default=None, alias="leftName", exclude=False)
611
+ note: str | None = Field(default=None, alias="note", exclude=False)
612
+ payload: dict[str, Any] = Field(alias="payload")
613
+ reason_code: str | None = Field(default=None, alias="reasonCode", exclude=False)
614
+ reference: str | None = Field(default=None, alias="reference", exclude=False)
615
+ review_status: str = Field(alias="reviewStatus")
616
+ right_name: str | None = Field(default=None, alias="rightName", exclude=False)
617
+ side: str | None = Field(default=None, alias="side", exclude=False)
618
+ type: str = Field(alias="type")
619
+
620
+
621
+ class PublicSignoff(ResponseModel):
622
+ approval_note: str = Field(alias="approvalNote")
623
+ id: str = Field(alias="id")
624
+ reconciliation_id: str = Field(alias="reconciliationId")
625
+ role: PublicSignoffRole = Field(alias="role")
626
+ signed_at: datetime = Field(alias="signedAt")
627
+ signed_with_exceptions: bool = Field(alias="signedWithExceptions")
628
+ signer_name: str = Field(alias="signerName")
629
+ signer_title: str = Field(alias="signerTitle")
630
+
631
+
632
+ class Reconciliation(ResponseModel):
633
+ completed_at: datetime | None = Field(default=None, alias="completedAt", exclude=False)
634
+ created_at: datetime = Field(alias="createdAt")
635
+ current_stage: str = Field(alias="currentStage")
636
+ id: str = Field(alias="id")
637
+ last_error_message: str | None = Field(default=None, alias="lastErrorMessage", exclude=False)
638
+ ledger_config: Any | None = Field(default=None, alias="ledgerConfig", exclude=False)
639
+ name: str | None = Field(default=None, alias="name", exclude=False)
640
+ org_id: str = Field(alias="orgId")
641
+ progress_pct: float = Field(alias="progressPct")
642
+ run_mode: str = Field(alias="runMode")
643
+ started_at: datetime | None = Field(default=None, alias="startedAt", exclude=False)
644
+ status: str = Field(alias="status")
645
+ updated_at: datetime = Field(alias="updatedAt")
646
+
647
+
648
+ class ReconciliationLink(ResponseModel):
649
+ category: str = Field(alias="category")
650
+ exception_status: str = Field(alias="exceptionStatus")
651
+ match_basis: str = Field(alias="matchBasis")
652
+ reconciliation_id: str = Field(alias="reconciliationId")
653
+ reconciliation_name: str | None = Field(default=None, alias="reconciliationName", exclude=False)
654
+ reference: str = Field(alias="reference")
655
+ result_item_id: int = Field(alias="resultItemId")
656
+
657
+
658
+ class ReconciliationOutputBody(ResponseModel):
659
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
660
+ reconciliation: Reconciliation = Field(alias="reconciliation")
661
+
662
+
663
+ class ReconciliationSchedule(ResponseModel):
664
+ anchor_source_id: str = Field(alias="anchorSourceId")
665
+ correlation_namespace: str | None = Field(
666
+ default=None, alias="correlationNamespace", exclude=False
667
+ )
668
+ created_at: datetime = Field(alias="createdAt")
669
+ frequency: ReconciliationScheduleFrequency = Field(alias="frequency")
670
+ id: str = Field(alias="id")
671
+ last_run_id: str | None = Field(default=None, alias="lastRunId", exclude=False)
672
+ next_run_at: datetime = Field(alias="nextRunAt")
673
+ rolling_window_duration: str = Field(alias="rollingWindowDuration")
674
+ source_ids: list[str] | None = Field(alias="sourceIds")
675
+ status: ReconciliationScheduleStatus = Field(alias="status")
676
+ updated_at: datetime = Field(alias="updatedAt")
677
+ window_basis: ReconciliationScheduleWindowBasis = Field(alias="windowBasis")
678
+
679
+
680
+ class RejectedResult(ResponseModel):
681
+ code: str = Field(alias="code")
682
+ index: int = Field(alias="index")
683
+ reason: str = Field(alias="reason")
684
+
685
+
686
+ class RelatedEvent(ResponseModel):
687
+ amount_minor: int = Field(alias="amountMinor")
688
+ currency: str = Field(alias="currency")
689
+ entity_reference: str | None = Field(default=None, alias="entityReference", exclude=False)
690
+ event_id: str = Field(alias="eventId")
691
+ event_type: str = Field(alias="eventType")
692
+ evidence_role: str = Field(alias="evidenceRole")
693
+ external_reference: str | None = Field(default=None, alias="externalReference", exclude=False)
694
+ occurred_at: datetime = Field(alias="occurredAt")
695
+ provider_reference: str | None = Field(default=None, alias="providerReference", exclude=False)
696
+ received_at: datetime = Field(alias="receivedAt")
697
+ source_event_id: str = Field(alias="sourceEventId")
698
+ source_id: str = Field(alias="sourceId")
699
+ superseded_by_event_id: str | None = Field(
700
+ default=None, alias="supersededByEventId", exclude=False
701
+ )
702
+
703
+
704
+ class ResolveInputBody(RequestModel):
705
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
706
+ evidence_attachment_id: str = Field(alias="evidenceAttachmentId")
707
+ reason: str = Field(alias="reason")
708
+
709
+
710
+ class ScheduleOutputBody(ResponseModel):
711
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
712
+ schedule: ReconciliationSchedule = Field(alias="schedule")
713
+
714
+
715
+ class ScheduleRequestBody(RequestModel):
716
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
717
+ anchor_source_id: str = Field(alias="anchor_source_id")
718
+ correlation_namespace: str | None = Field(
719
+ default=None, alias="correlation_namespace", exclude=False
720
+ )
721
+ frequency: ScheduleRequestBodyFrequency = Field(alias="frequency")
722
+ next_run_at: datetime | None = Field(default=None, alias="next_run_at", exclude=False)
723
+ rolling_window_duration: str | None = Field(
724
+ default=None, alias="rolling_window_duration", exclude=False
725
+ )
726
+ source_ids: list[str] | None = Field(alias="source_ids", min_length=2)
727
+ status: ScheduleRequestBodyStatus | None = Field(default=None, alias="status", exclude=False)
728
+ window_basis: ScheduleRequestBodyWindowBasis = Field(alias="window_basis")
729
+
730
+
731
+ class ScheduleUpdateRequestBody(RequestModel):
732
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
733
+ anchor_source_id: str | None = Field(default=None, alias="anchor_source_id", exclude=False)
734
+ correlation_namespace: str | None = Field(
735
+ default=None, alias="correlation_namespace", exclude=False
736
+ )
737
+ frequency: ScheduleUpdateRequestBodyFrequency | None = Field(
738
+ default=None, alias="frequency", exclude=False
739
+ )
740
+ next_run_at: datetime | None = Field(default=None, alias="next_run_at", exclude=False)
741
+ rolling_window_duration: str | None = Field(
742
+ default=None, alias="rolling_window_duration", exclude=False
743
+ )
744
+ source_ids: list[str] | None = Field(default=None, alias="source_ids", min_length=2)
745
+ status: ScheduleUpdateRequestBodyStatus | None = Field(
746
+ default=None, alias="status", exclude=False
747
+ )
748
+ window_basis: ScheduleUpdateRequestBodyWindowBasis | None = Field(
749
+ default=None, alias="window_basis", exclude=False
750
+ )
751
+
752
+
753
+ class SchemaMap(ResponseModel):
754
+ amount_col: str | None = Field(default=None, alias="amountCol", exclude=False)
755
+ currency_col: str | None = Field(default=None, alias="currencyCol", exclude=False)
756
+ date_col: str | None = Field(default=None, alias="dateCol", exclude=False)
757
+ date_layout: str | None = Field(default=None, alias="dateLayout", exclude=False)
758
+ decimal: str | None = Field(default=None, alias="decimal", exclude=False)
759
+ direction_col: str | None = Field(default=None, alias="directionCol", exclude=False)
760
+ name_col: str | None = Field(default=None, alias="nameCol", exclude=False)
761
+ ref_col: str | None = Field(default=None, alias="refCol", exclude=False)
762
+ thousands: str | None = Field(default=None, alias="thousands", exclude=False)
763
+ type_col: str | None = Field(default=None, alias="typeCol", exclude=False)
764
+
765
+
766
+ class SearchPage(ResponseModel):
767
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
768
+ limit: int = Field(alias="limit")
769
+ results: list[SearchResult] | None = Field(alias="results")
770
+
771
+
772
+ class SearchResult(ResponseModel):
773
+ id: str = Field(alias="id")
774
+ kind: str = Field(alias="kind")
775
+ occurred_at: datetime = Field(alias="occurredAt")
776
+ status: str | None = Field(default=None, alias="status", exclude=False)
777
+ subtitle: str | None = Field(default=None, alias="subtitle", exclude=False)
778
+ title: str = Field(alias="title")
779
+
780
+
781
+ class SetupIntegration(ResponseModel):
782
+ capabilities: list[str] | None = Field(default=None, alias="capabilities", exclude=False)
783
+ created_at: datetime = Field(alias="createdAt")
784
+ health: str = Field(alias="health")
785
+ id: str = Field(alias="id")
786
+ name: str = Field(alias="name")
787
+ status: str = Field(alias="status")
788
+ type: str = Field(alias="type")
789
+ updated_at: datetime = Field(alias="updatedAt")
790
+
791
+
792
+ class SetupIntegrationOutputBody(ResponseModel):
793
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
794
+ integration: SetupIntegration = Field(alias="integration")
795
+
796
+
797
+ class SetupIntegrationsOutputBody(ResponseModel):
798
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
799
+ integrations: list[SetupIntegration] | None = Field(alias="integrations")
800
+
801
+
802
+ class SetupSessionDiff(ResponseModel):
803
+ missing: list[str] | None = Field(alias="missing")
804
+ unexpected: list[str] | None = Field(alias="unexpected")
805
+
806
+
807
+ class SetupSessionOutputBody(ResponseModel):
808
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
809
+ test_session: SetupTestSession = Field(alias="testSession")
810
+
811
+
812
+ class SetupSource(ResponseModel):
813
+ config: dict[str, Any] | None = Field(default=None, alias="config", exclude=False)
814
+ created_at: datetime = Field(alias="createdAt")
815
+ id: str = Field(alias="id")
816
+ name: str = Field(alias="name")
817
+ org_id: str = Field(alias="orgId")
818
+ source_type: str = Field(alias="sourceType")
819
+ status: str = Field(alias="status")
820
+ updated_at: datetime = Field(alias="updatedAt")
821
+
822
+
823
+ class SetupSourceOutputBody(ResponseModel):
824
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
825
+ source: SetupSource = Field(alias="source")
826
+
827
+
828
+ class SetupSourcesOutputBody(ResponseModel):
829
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
830
+ limit: int = Field(alias="limit")
831
+ offset: int = Field(alias="offset")
832
+ sources: list[SetupSource] | None = Field(alias="sources")
833
+ total: int = Field(alias="total")
834
+
835
+
836
+ class SetupSubmitSessionInputBody(RequestModel):
837
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
838
+ events: list[PublicEvent] | None = Field(alias="events")
839
+
840
+
841
+ class SetupTestSession(ResponseModel):
842
+ completed_at: datetime | None = Field(default=None, alias="completedAt", exclude=False)
843
+ control_id: str = Field(alias="controlId")
844
+ created_at: datetime = Field(alias="createdAt")
845
+ diff: SetupSessionDiff | None = Field(default=None, alias="diff", exclude=False)
846
+ expected_roles: list[str] | None = Field(alias="expectedRoles")
847
+ expires_at: datetime = Field(alias="expiresAt")
848
+ id: str = Field(alias="id")
849
+ instructions: dict[str, Any] | None = Field(default=None, alias="instructions", exclude=False)
850
+ observed_roles: list[str] | None = Field(alias="observedRoles")
851
+ org_id: str = Field(alias="orgId")
852
+ retry_count: int = Field(alias="retryCount")
853
+ status: str = Field(alias="status")
854
+
855
+
856
+ class SignoffOutputBody(ResponseModel):
857
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
858
+ signoff: PublicSignoff = Field(alias="signoff")
859
+
860
+
861
+ class SignoffRequestBody(RequestModel):
862
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
863
+ approval_note: str | None = Field(default=None, alias="approvalNote", exclude=False)
864
+ signed_with_exceptions: bool | None = Field(
865
+ default=None, alias="signedWithExceptions", exclude=False
866
+ )
867
+ signer_name: str = Field(alias="signerName")
868
+ signer_title: str | None = Field(default=None, alias="signerTitle", exclude=False)
869
+
870
+
871
+ class Source(ResponseModel):
872
+ created_at: datetime = Field(alias="createdAt")
873
+ id: str = Field(alias="id")
874
+ name: str = Field(alias="name")
875
+ org_id: str = Field(alias="orgId")
876
+ schema_mapping: SchemaMap = Field(alias="schemaMapping")
877
+ updated_at: datetime = Field(alias="updatedAt")
878
+
879
+
880
+ class SourceOutputBody(ResponseModel):
881
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
882
+ source: Source = Field(alias="source")
883
+
884
+
885
+ class SourceRef(ResponseModel):
886
+ display_name: str | None = Field(default=None, alias="display_name", exclude=False)
887
+ role: SourceRefRole = Field(alias="role")
888
+ source_id: str = Field(alias="source_id")
889
+
890
+
891
+ class StatusOutputBody(ResponseModel):
892
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
893
+ status: str = Field(alias="status")
894
+
895
+
896
+ class Transaction(ResponseModel):
897
+ amount_minor: int = Field(alias="amountMinor")
898
+ currency: str = Field(alias="currency")
899
+ date: str = Field(alias="date")
900
+ direction: str = Field(alias="direction")
901
+ id: str = Field(alias="id")
902
+ idempotency_key: str = Field(alias="idempotencyKey")
903
+ ingested_at: datetime = Field(alias="ingestedAt")
904
+ metadata: Any | None = Field(default=None, alias="metadata", exclude=False)
905
+ name: str | None = Field(default=None, alias="name", exclude=False)
906
+ org_id: str = Field(alias="orgId")
907
+ period_key: str = Field(alias="periodKey")
908
+ raw: Any | None = Field(default=None, alias="raw", exclude=False)
909
+ reference: str | None = Field(default=None, alias="reference", exclude=False)
910
+ source_id: str = Field(alias="sourceId")
911
+ status: str = Field(alias="status")
912
+ transaction_type: str | None = Field(default=None, alias="transactionType", exclude=False)
913
+ value_date: str | None = Field(default=None, alias="valueDate", exclude=False)
914
+
915
+
916
+ class TransactionDetailResource(ResponseModel):
917
+ alerts: list[AlertLink] | None = Field(alias="alerts")
918
+ amount_minor: int = Field(alias="amountMinor")
919
+ correlation_namespace: str | None = Field(
920
+ default=None, alias="correlationNamespace", exclude=False
921
+ )
922
+ currency: str = Field(alias="currency")
923
+ direction: str = Field(alias="direction")
924
+ entity_reference: str | None = Field(default=None, alias="entityReference", exclude=False)
925
+ event_type: str = Field(alias="eventType")
926
+ external_reference: str | None = Field(default=None, alias="externalReference", exclude=False)
927
+ finding_id: str | None = Field(default=None, alias="findingId", exclude=False)
928
+ findings: list[Issue] | None = Field(alias="findings")
929
+ id: str = Field(alias="id")
930
+ occurred_at: datetime = Field(alias="occurredAt")
931
+ operation_id: str | None = Field(default=None, alias="operationId", exclude=False)
932
+ provider_event_id: str | None = Field(default=None, alias="providerEventId", exclude=False)
933
+ provider_reference: str | None = Field(default=None, alias="providerReference", exclude=False)
934
+ received_at: datetime = Field(alias="receivedAt")
935
+ reconciliation_links: list[ReconciliationLink] | None = Field(alias="reconciliationLinks")
936
+ reconciliation_status: str | None = Field(
937
+ default=None, alias="reconciliationStatus", exclude=False
938
+ )
939
+ related_events: list[RelatedEvent] | None = Field(alias="relatedEvents")
940
+ signed_amount_minor: int = Field(alias="signedAmountMinor")
941
+ source_event_id: str = Field(alias="sourceEventId")
942
+ status: TransactionDetailResourceStatus = Field(alias="status")
943
+ superseded: bool = Field(alias="superseded")
944
+ supersedes_source_event_id: str | None = Field(
945
+ default=None, alias="supersedesSourceEventId", exclude=False
946
+ )
947
+ wallet_id: str = Field(alias="walletId")
948
+
949
+
950
+ class TransactionOutputBody(ResponseModel):
951
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
952
+ transaction: TransactionDetailResource = Field(alias="transaction")
953
+
954
+
955
+ class TransactionPage(ResponseModel):
956
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
957
+ limit: int = Field(alias="limit")
958
+ next_cursor: str | None = Field(default=None, alias="nextCursor", exclude=False)
959
+ transactions: list[WalletTransaction] | None = Field(alias="transactions")
960
+
961
+
962
+ class UpdateSourceInputBody(RequestModel):
963
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
964
+ name: str | None = Field(default=None, alias="name", exclude=False)
965
+ schema_mapping: SchemaMap | None = Field(default=None, alias="schemaMapping", exclude=False)
966
+
967
+
968
+ class UpdateSourceRequest(RequestModel):
969
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
970
+ config: dict[str, Any] | None = Field(default=None, alias="config", exclude=False)
971
+ name: str | None = Field(default=None, alias="name", exclude=False)
972
+ status: str | None = Field(default=None, alias="status", exclude=False)
973
+
974
+
975
+ class Wallet(ResponseModel):
976
+ balance_minor: int = Field(alias="balanceMinor")
977
+ balance_updated_at: datetime | None = Field(
978
+ default=None, alias="balanceUpdatedAt", exclude=False
979
+ )
980
+ created_at: datetime = Field(alias="createdAt")
981
+ currency: str | None = Field(alias="currency")
982
+ event_count: int = Field(alias="eventCount")
983
+ has_additional_currencies: bool = Field(alias="hasAdditionalCurrencies")
984
+ id: str = Field(alias="id")
985
+ last_applied_at: datetime | None = Field(default=None, alias="lastAppliedAt", exclude=False)
986
+ name: str = Field(alias="name")
987
+ status: str = Field(alias="status")
988
+ updated_at: datetime = Field(alias="updatedAt")
989
+
990
+
991
+ class WalletBalance(ResponseModel):
992
+ balance_minor: int = Field(alias="balanceMinor")
993
+ currency: str | None = Field(alias="currency")
994
+ event_count: int = Field(alias="eventCount")
995
+ has_additional_currencies: bool = Field(alias="hasAdditionalCurrencies")
996
+ last_applied_at: datetime | None = Field(default=None, alias="lastAppliedAt", exclude=False)
997
+ updated_at: datetime | None = Field(default=None, alias="updatedAt", exclude=False)
998
+ wallet_id: str = Field(alias="walletId")
999
+
1000
+
1001
+ class WalletBalanceOutputBody(ResponseModel):
1002
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
1003
+ balance: WalletBalance = Field(alias="balance")
1004
+
1005
+
1006
+ class WalletOutputBody(ResponseModel):
1007
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
1008
+ wallet: Wallet = Field(alias="wallet")
1009
+
1010
+
1011
+ class WalletPage(ResponseModel):
1012
+ schema_: str | None = Field(default=None, alias="$schema", exclude=True)
1013
+ limit: int = Field(alias="limit")
1014
+ offset: int = Field(alias="offset")
1015
+ total: int = Field(alias="total")
1016
+ wallets: list[Wallet] | None = Field(alias="wallets")
1017
+
1018
+
1019
+ class WalletTransaction(ResponseModel):
1020
+ amount_minor: int = Field(alias="amountMinor")
1021
+ correlation_namespace: str | None = Field(
1022
+ default=None, alias="correlationNamespace", exclude=False
1023
+ )
1024
+ currency: str = Field(alias="currency")
1025
+ direction: str = Field(alias="direction")
1026
+ entity_reference: str | None = Field(default=None, alias="entityReference", exclude=False)
1027
+ event_type: str = Field(alias="eventType")
1028
+ external_reference: str | None = Field(default=None, alias="externalReference", exclude=False)
1029
+ finding_id: str | None = Field(default=None, alias="findingId", exclude=False)
1030
+ id: str = Field(alias="id")
1031
+ occurred_at: datetime = Field(alias="occurredAt")
1032
+ operation_id: str | None = Field(default=None, alias="operationId", exclude=False)
1033
+ provider_event_id: str | None = Field(default=None, alias="providerEventId", exclude=False)
1034
+ provider_reference: str | None = Field(default=None, alias="providerReference", exclude=False)
1035
+ received_at: datetime = Field(alias="receivedAt")
1036
+ reconciliation_status: str | None = Field(
1037
+ default=None, alias="reconciliationStatus", exclude=False
1038
+ )
1039
+ signed_amount_minor: int = Field(alias="signedAmountMinor")
1040
+ source_event_id: str = Field(alias="sourceEventId")
1041
+ status: WalletTransactionStatus = Field(alias="status")
1042
+ superseded: bool = Field(alias="superseded")
1043
+ supersedes_source_event_id: str | None = Field(
1044
+ default=None, alias="supersedesSourceEventId", exclude=False
1045
+ )
1046
+ wallet_id: str = Field(alias="walletId")
1047
+
1048
+
1049
+ class AlertRuleRequest(RequestModel):
1050
+ breach_enabled: bool = Field(alias="breachEnabled")
1051
+ channels: list[str] | None = Field(default=None, alias="channels")
1052
+ control_id: str = Field(alias="controlId")
1053
+ dedup_window_seconds: int = Field(alias="dedupWindowSeconds")
1054
+ destinations: dict[str, Any] = Field(alias="destinations")
1055
+ resolution_enabled: bool = Field(alias="resolutionEnabled")
1056
+ severity_min: str = Field(alias="severityMin")
1057
+ suppressed_until: datetime | None = Field(default=None, alias="suppressedUntil")
1058
+ suppression_reason: str | None = Field(default=None, alias="suppressionReason")
1059
+
1060
+
1061
+ def model_dump(model: BaseModel) -> dict[str, Any]:
1062
+ return model.model_dump(by_alias=True, exclude_none=True, exclude_unset=True)
1063
+
1064
+
1065
+ for _model in list(globals().values()):
1066
+ if isinstance(_model, type) and issubclass(_model, BaseModel) and _model is not BaseModel:
1067
+ _model.model_rebuild()