blend_api/
model.rs

1use serde::{Serialize, Deserialize};
2#[derive(Debug, Serialize, Deserialize)]
3pub struct RawApplicationExportData(pub String);
4#[derive(Debug, Serialize, Deserialize)]
5pub struct ApplicationId(pub String);
6#[derive(Debug, Serialize, Deserialize)]
7pub struct DocumentId(pub String);
8#[derive(Debug, Serialize, Deserialize)]
9pub struct FollowUpId(pub String);
10#[derive(Debug, Serialize, Deserialize)]
11pub struct PartyId(pub String);
12#[derive(Debug, Serialize, Deserialize)]
13pub struct ReferenceNumber(pub String);
14#[derive(Debug, Serialize, Deserialize)]
15pub struct LosId(pub String);
16#[derive(Debug, Serialize, Deserialize)]
17pub struct CrmId(pub String);
18#[derive(Debug, Serialize, Deserialize)]
19pub struct LosPrimaryKey(pub String);
20#[derive(Debug, Serialize, Deserialize)]
21pub enum DocumentType {
22    #[serde(rename = "LOE_PUBLIC_RECORD:BANKRUPTCY")]
23    LoePublicRecordBankruptcy,
24    #[serde(rename = "LOE_PUBLIC_RECORD:TAX_LIEN")]
25    LoePublicRecordTaxLien,
26    #[serde(rename = "LOE_PUBLIC_RECORD:JUDGMENT")]
27    LoePublicRecordJudgment,
28    #[serde(rename = "LOE_LARGE_DEPOSITS:TRANSFER")]
29    LoeLargeDepositsTransfer,
30    #[serde(rename = "LOE_LARGE_DEPOSITS:SALE_OF_ASSET")]
31    LoeLargeDepositsSaleOfAsset,
32    #[serde(rename = "LOE_LARGE_DEPOSITS:INCOME")]
33    LoeLargeDepositsIncome,
34    #[serde(rename = "LOE_LARGE_DEPOSITS:GIFT")]
35    LoeLargeDepositsGift,
36    #[serde(rename = "LOE_LARGE_DEPOSITS:OTHER")]
37    LoeLargeDepositsOther,
38    #[serde(rename = "BANK_STATEMENT")]
39    BankStatement,
40    #[serde(rename = "BANK_STATEMENT:_MUTUAL_FUND_ACCOUNT")]
41    BankStatementMutualFundAccount,
42    #[serde(rename = "BANK_STATEMENT:_STOCK_ACCOUNT")]
43    BankStatementStockAccount,
44    #[serde(rename = "FINANCIAL_STATEMENT:_BALANCE_SHEET")]
45    FinancialStatementBalanceSheet,
46    #[serde(rename = "FINANCIAL_STATEMENT:_INCOME")]
47    FinancialStatementIncome,
48    #[serde(rename = "IRS1040")]
49    Irs1040,
50    #[serde(rename = "IRS1041")]
51    Irs1041,
52    #[serde(rename = "IRS1120")]
53    Irs1120,
54    #[serde(rename = "IRS1120_S")]
55    Irs1120S,
56    #[serde(rename = "LLC_BTR_DOC")]
57    LlcBtrDoc,
58    #[serde(rename = "IRSW2")]
59    Irsw2,
60    #[serde(rename = "CRAT4")]
61    Crat4,
62    #[serde(rename = "1003")]
63    DocumentType1003,
64    #[serde(rename = "4506t")]
65    DocumentType4506T,
66    #[serde(rename = "TAX_TRANSCRIPT")]
67    TaxTranscript,
68    #[serde(rename = "DOCUSIGN_CERT_OF_COMP")]
69    DocusignCertOfComp,
70    #[serde(rename = "PAY_STUB")]
71    PayStub,
72    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_GENERAL")]
73    PropertyInsurancePolicyGeneral,
74    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_MINE_SUBSIDENCE")]
75    PropertyInsurancePolicyMineSubsidence,
76    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_INSECT_INFESTATION")]
77    PropertyInsurancePolicyInsectInfestation,
78    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_HOMEOWNERS")]
79    PropertyInsurancePolicyHomeowners,
80    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_VOLCANO")]
81    PropertyInsurancePolicyVolcano,
82    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_FLOOD")]
83    PropertyInsurancePolicyFlood,
84    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_HAZARD")]
85    PropertyInsurancePolicyHazard,
86    #[serde(rename = "INSURANCE_AGENT_CONTACT_INFO")]
87    InsuranceAgentContactInfo,
88    #[serde(rename = "PURCHASE_AGREEMENT")]
89    PurchaseAgreement,
90    #[serde(rename = "OTHER_DISCLOSURES")]
91    OtherDisclosures,
92    #[serde(rename = "REQUEST_FOR_COPY_OF_TAX_RETURN:_IRS4506_T")]
93    RequestForCopyOfTaxReturnIrs4506T,
94    #[serde(rename = "RETIREMENT_ACCOUNT_STATEMENT")]
95    RetirementAccountStatement,
96    #[serde(rename = "SOCIAL_SECURITY_AWARD_LETTER")]
97    SocialSecurityAwardLetter,
98    #[serde(rename = "TRUST_AGREEMENT")]
99    TrustAgreement,
100    #[serde(rename = "VERIFICATION_OF_EMPLOYMENT")]
101    VerificationOfEmployment,
102    #[serde(rename = "VERIFICATION_OF_EMPLOYMENT_REVERIFY")]
103    VerificationOfEmploymentReverify,
104    #[serde(rename = "VERIFICATION_OF_EMPLOYMENT_RETRIEVED")]
105    VerificationOfEmploymentRetrieved,
106    #[serde(rename = "VERIFICATION_OF_INCOME")]
107    VerificationOfIncome,
108    #[serde(rename = "PENSION_AWARD_LETTER")]
109    PensionAwardLetter,
110    #[serde(rename = "ANNUITY_AWARD_LETTER")]
111    AnnuityAwardLetter,
112    #[serde(rename = "DEFERRED_COMPENSATION_AWARD_LETTER")]
113    DeferredCompensationAwardLetter,
114    #[serde(rename = "VERIFICATION_OF_MORTGAGE_OR_RENT")]
115    VerificationOfMortgageOrRent,
116    #[serde(rename = "VERIFICATION_OF_RENT")]
117    VerificationOfRent,
118    #[serde(rename = "VERIFICATION_OF_MORTGAGE")]
119    VerificationOfMortgage,
120    #[serde(rename = "RETIREMENT_LIQUIDITY_TERMS")]
121    RetirementLiquidityTerms,
122    #[serde(rename = "LETTER_OF_EXPLANATION:_CREDIT_INQUIRY")]
123    LetterOfExplanationCreditInquiry,
124    #[serde(rename = "LETTER_OF_EXPLANATION:_DEROGATORY_CREDIT")]
125    LetterOfExplanationDerogatoryCredit,
126    #[serde(rename = "LETTER_OF_EXPLANATION:_ADDRESS_VERIFICATION")]
127    LetterOfExplanationAddressVerification,
128    #[serde(rename = "LETTER_OF_EXPLANATION:_JOB_GAP")]
129    LetterOfExplanationJobGap,
130    #[serde(rename = "LETTER_OF_EXPLANATION:_LARGE_DEPOSITS")]
131    LetterOfExplanationLargeDeposits,
132    #[serde(rename = "LETTER_OF_EXPLANATION:SHORT_SALE")]
133    LetterOfExplanationShortSale,
134    #[serde(rename = "PROPERTY_TAX_BILL")]
135    PropertyTaxBill,
136    #[serde(rename = "MORTGAGE_STATEMENT")]
137    MortgageStatement,
138    #[serde(rename = "BORROWER_CONSENT_FORM")]
139    BorrowerConsentForm,
140    #[serde(rename = "BORROWER_INCOME_VERIFICATION_CONSENT_FORM")]
141    BorrowerIncomeVerificationConsentForm,
142    #[serde(rename = "APPRAISAL_WAIVER")]
143    AppraisalWaiver,
144    #[serde(rename = "INTENT_TO_PROCEED")]
145    IntentToProceed,
146    #[serde(rename = "NATIONAL_IDENTIFICATION")]
147    NationalIdentification,
148    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_MASTERPOLICY_ASSN")]
149    PropertyInsurancePolicyMasterpolicyAssn,
150    #[serde(rename = "MARRIAGE_CERTIFICATE")]
151    MarriageCertificate,
152    #[serde(rename = "DEATH_CERTIFICATE")]
153    DeathCertificate,
154    #[serde(rename = "DIVORCE_DECREE")]
155    DivorceDecree,
156    #[serde(rename = "NATIONAL_IDENTIFICATION:_SOCIAL_SECURITY_CARD")]
157    NationalIdentificationSocialSecurityCard,
158    #[serde(rename = "CONDOMINIUM_OCCUPANCY_CERTIFICATE")]
159    CondominiumOccupancyCertificate,
160    #[serde(rename = "HOMEOWNERS_ASSOCIATION_CERTIFICATION")]
161    HomeownersAssociationCertification,
162    #[serde(rename = "BANK_DEPOSIT_SLIP")]
163    BankDepositSlip,
164    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_HURRICANE")]
165    PropertyInsurancePolicyHurricane,
166    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_LEASEHOLD")]
167    PropertyInsurancePolicyLeasehold,
168    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_PERSONAL_PROPERTY")]
169    PropertyInsurancePolicyPersonalProperty,
170    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_STORM")]
171    PropertyInsurancePolicyStorm,
172    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_TORNADO")]
173    PropertyInsurancePolicyTornado,
174    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_WIND")]
175    PropertyInsurancePolicyWind,
176    #[serde(rename = "CREDIT_REPORT")]
177    CreditReport,
178    #[serde(rename = "PERMANENT_RESIDENT_IDENTIFICATION")]
179    PermanentResidentIdentification,
180    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_CONDOMINIUM")]
181    PropertyInsurancePolicyCondominium,
182    #[serde(rename = "APPRAISAL_REPORT_SINGLE FAMILY")]
183    AppraisalReportSingleFamily,
184    #[serde(rename = "APPRAISAL_REPORT_2_-_4_UNIT")]
185    AppraisalReport24Unit,
186    #[serde(rename = "APPRAISAL_REPORT_MANUFACTURED_HOME")]
187    AppraisalReportManufacturedHome,
188    #[serde(rename = "APPRAISAL_REPORT_COOP")]
189    AppraisalReportCoop,
190    #[serde(rename = "APPRAISAL_REPORT_EXTERIOR_ONLY")]
191    AppraisalReportExteriorOnly,
192    #[serde(rename = "APPRAISAL_REPORT_AVM")]
193    AppraisalReportAvm,
194    #[serde(rename = "APPRAISAL_REPORT_RENT_SURVEY")]
195    AppraisalReportRentSurvey,
196    #[serde(rename = "APPRAISAL_REPORT_OPERATING_INCOME_SCHEDULE")]
197    AppraisalReportOperatingIncomeSchedule,
198    #[serde(rename = "APPRAISAL_REPORT_MARKET_CONDITIONS_ADDENDUM")]
199    AppraisalReportMarketConditionsAddendum,
200    #[serde(rename = "APPRAISAL_REPORT_UPDATE_AND_OR_COMPLETION_REPORT")]
201    AppraisalReportUpdateAndOrCompletionReport,
202    #[serde(rename = "APPRAISAL_REPORT_PROPERTY_CONDITION_REPORT")]
203    AppraisalReportPropertyConditionReport,
204    #[serde(rename = "APPRAISAL_REPORT_DESK_REVIEW")]
205    AppraisalReportDeskReview,
206    #[serde(rename = "SETTLEMENT_STATEMENT_HUD1")]
207    SettlementStatementHud1,
208    #[serde(rename = "VISA")]
209    Visa,
210    #[serde(rename = "PASSPORT")]
211    Passport,
212    #[serde(rename = "NATIONAL_IDENTIFICATION_NON_PERMANENT_RESIDENT")]
213    NationalIdentificationNonPermanentResident,
214    #[serde(rename = "DD_214")]
215    Dd214,
216    #[serde(rename = "VA_STATEMENT_OF_SERVICE")]
217    VaStatementOfService,
218    #[serde(rename = "VA_CERTIFICATE_OF_ELIGIBILITY")]
219    VaCertificateOfEligibility,
220    #[serde(rename = "CREDIT_AUTHORIZATION")]
221    CreditAuthorization,
222    #[serde(rename = "CREDIT_CARD_AUTHORIZATION")]
223    CreditCardAuthorization,
224    #[serde(rename = "BIRTH_CERTIFICATE")]
225    BirthCertificate,
226    #[serde(rename = "INVOICE_UTILITY_BILL")]
227    InvoiceUtilityBill,
228    #[serde(rename = "ADDRESS_VERIFICATION")]
229    AddressVerification,
230    #[serde(rename = "LETTER_OF_EXPLANATION_NAME_VARIATION")]
231    LetterOfExplanationNameVariation,
232    #[serde(rename = "POWER_OF_ATTORNEY")]
233    PowerOfAttorney,
234    #[serde(rename = "RENTAL_AGREEMENT")]
235    RentalAgreement,
236    #[serde(rename = "RENTAL_SECURITY_DEPOSIT")]
237    RentalSecurityDeposit,
238    #[serde(rename = "VERIFICATION_OF_EMPLOYMENT_LETTER")]
239    VerificationOfEmploymentLetter,
240    #[serde(rename = "VERIFICATION_OF_EMPLOYMENT_WRITTEN")]
241    VerificationOfEmploymentWritten,
242    #[serde(rename = "BUSINESS_LICENSE")]
243    BusinessLicense,
244    #[serde(rename = "IRS1099")]
245    Irs1099,
246    #[serde(rename = "K1")]
247    K1,
248    #[serde(rename = "IRS1065")]
249    Irs1065,
250    #[serde(rename = "SOCIAL_SECURITY_PROOF_OF_RECEIPT")]
251    SocialSecurityProofOfReceipt,
252    #[serde(rename = "EMPLOYMENT_OFFER_LETTER")]
253    EmploymentOfferLetter,
254    #[serde(rename = "RENTAL_INCOME_PROOF_OF_RECEIPT")]
255    RentalIncomeProofOfReceipt,
256    #[serde(rename = "RETIREMENT_AWARD_LETTER")]
257    RetirementAwardLetter,
258    #[serde(rename = "VA_CHILD_CARE_CERTIFICATE")]
259    VaChildCareCertificate,
260    #[serde(rename = "VA_AWARD_LETTER")]
261    VaAwardLetter,
262    #[serde(rename = "BONUS_AND_COMMISSION_DOCUMENTATION")]
263    BonusAndCommissionDocumentation,
264    #[serde(rename = "CHILD_SUPPORT_INCOME")]
265    ChildSupportIncome,
266    #[serde(rename = "ALIMONY_INCOME")]
267    AlimonyIncome,
268    #[serde(rename = "CHILD_SUPPORT_LIABILITY")]
269    ChildSupportLiability,
270    #[serde(rename = "ALIMONY_LIABILITY")]
271    AlimonyLiability,
272    #[serde(rename = "GENERATED_ASSET_STATEMENT")]
273    GeneratedAssetStatement,
274    #[serde(rename = "ACHDEBIT_AUTHORIZATION")]
275    AchdebitAuthorization,
276    #[serde(rename = "GIFT_LETTER")]
277    GiftLetter,
278    #[serde(rename = "PROOF_OF_LIQUIDATION")]
279    ProofOfLiquidation,
280    #[serde(rename = "CREDIT_REPORT_NON_TRADITIONAL")]
281    CreditReportNonTraditional,
282    #[serde(rename = "CREDIT_SUPPLEMENT")]
283    CreditSupplement,
284    #[serde(rename = "BANKRUPTCY_DISCHARGE_NOTICE")]
285    BankruptcyDischargeNotice,
286    #[serde(rename = "BANKRUPTCY_FILING")]
287    BankruptcyFiling,
288    #[serde(rename = "SATISFACTION_OF_SECURITY_INSTRUMENT_LIEN_RELEASE")]
289    SatisfactionOfSecurityInstrumentLienRelease,
290    #[serde(rename = "FRAUD_ALERT")]
291    FraudAlert,
292    #[serde(rename = "STATEMENT_CREDIT_CARD_OR_INSTALLMENT_ACCT")]
293    StatementCreditCardOrInstallmentAcct,
294    #[serde(rename = "JUDGMENT")]
295    Judgment,
296    #[serde(rename = "COSIGNED_LIABILITY")]
297    CosignedLiability,
298    #[serde(rename = "PURCHASE_AGREEMENT_ADDENDUM")]
299    PurchaseAgreementAddendum,
300    #[serde(rename = "HOME_INSPECTION_REPORT")]
301    HomeInspectionReport,
302    #[serde(rename = "PEST_INSPECTION_REPORT")]
303    PestInspectionReport,
304    #[serde(rename = "ROOF_INSPECTION_REPORT")]
305    RoofInspectionReport,
306    #[serde(rename = "POOL_INSPECTION_REPORT")]
307    PoolInspectionReport,
308    #[serde(rename = "EARNEST_MONEY_DEPOSIT")]
309    EarnestMoneyDeposit,
310    #[serde(rename = "FLOOD_HAZARD_NOTICE")]
311    FloodHazardNotice,
312    #[serde(rename = "FLOOD_CERTIFICATION")]
313    FloodCertification,
314    #[serde(rename = "TAX_CERTIFICATE")]
315    TaxCertificate,
316    #[serde(rename = "AMENDATORY_CLAUSE")]
317    AmendatoryClause,
318    #[serde(rename = "PAYOFF_STATEMENT")]
319    PayoffStatement,
320    #[serde(rename = "CLOSING_PROTECTION_LETTER")]
321    ClosingProtectionLetter,
322    #[serde(rename = "SCHEDULE_OF_REAL_ESTATE")]
323    ScheduleOfRealEstate,
324    #[serde(rename = "BORROWER_CERTIFICATION")]
325    BorrowerCertification,
326    #[serde(rename = "OCCUPANCY_CERTIFICATION")]
327    OccupancyCertification,
328    #[serde(rename = "TRUTH_IN_LENDING")]
329    TruthInLending,
330    #[serde(rename = "GOOD_FAITH_ESTIMATE")]
331    GoodFaithEstimate,
332    #[serde(rename = "ESCROW_WAIVER")]
333    EscrowWaiver,
334    #[serde(rename = "LOAN_ESTIMATE")]
335    LoanEstimate,
336    #[serde(rename = "CLOSING_DISCLOSURE")]
337    ClosingDisclosure,
338    #[serde(rename = "GENERAL_LOAN_ACKNOWLEDGMENT")]
339    GeneralLoanAcknowledgment,
340    #[serde(rename = "HUD_VA_ADDENDUM")]
341    HudVaAddendum,
342    #[serde(rename = "BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION")]
343    BorrowerCorrespondenceLetterOfExplanation,
344    #[serde(rename = "BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION_OCCUPANCY")]
345    BorrowerCorrespondenceLetterOfExplanationOccupancy,
346    #[serde(rename = "BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION_CASHOUT")]
347    BorrowerCorrespondenceLetterOfExplanationCashout,
348    #[serde(rename = "MORTGAGE_INSURANCE")]
349    MortgageInsurance,
350    #[serde(rename = "NET_TANGIBLE_BENEFIT")]
351    NetTangibleBenefit,
352    #[serde(rename = "NOTE")]
353    Note,
354    #[serde(rename = "HOA_BILL")]
355    HoaBill,
356    #[serde(rename = "ARTICLES_OF_INCORPORATION")]
357    ArticlesOfIncorporation,
358    #[serde(rename = "BYLAWS_OPERATING_AGREEMENT")]
359    BylawsOperatingAgreement,
360    #[serde(rename = "AFFILIATED_BUSINESS_ARRANGEMENT_DISCLOSURE")]
361    AffiliatedBusinessArrangementDisclosure,
362    #[serde(rename = "DISCLOSURES_TRACKING_REPORT")]
363    DisclosuresTrackingReport,
364    #[serde(rename = "ENERGY_EFFICIENT_MORTGAGE_WORKSHEET")]
365    EnergyEfficientMortgageWorksheet,
366    #[serde(rename = "IMPORTANT_NOTICE_TO_HOMEBUYER")]
367    ImportantNoticeToHomebuyer,
368    #[serde(rename = "FAIR_LENDING_NOTICE")]
369    FairLendingNotice,
370    #[serde(rename = "FOR_YOUR_PROTECTION_HOME_INSPECTION")]
371    ForYourProtectionHomeInspection,
372    #[serde(rename = "RATE_LOCK_AGREEMENT")]
373    RateLockAgreement,
374    #[serde(rename = "BOND_CERTIFICATE")]
375    BondCertificate,
376    #[serde(rename = "CUSTOMER_IDENTIFICATION_VERIFICATION")]
377    CustomerIdentificationVerification,
378    #[serde(rename = "VERIFICATION_OF_SSN")]
379    VerificationOfSsn,
380    #[serde(rename = "RESIDUAL_INCOME_LETTER")]
381    ResidualIncomeLetter,
382    #[serde(rename = "OTHER")]
383    Other,
384    #[serde(rename = "DU_UNDERWRITING_FINDINGS")]
385    DuUnderwritingFindings,
386    #[serde(rename = "DU_UNDERWRITING_LOG")]
387    DuUnderwritingLog,
388    #[serde(rename = "DU_UNDERWRITING_DEFAULTS")]
389    DuUnderwritingDefaults,
390    #[serde(rename = "OTHER_APPLICATION")]
391    OtherApplication,
392    #[serde(rename = "PRE_QUALIFICATION_LETTER")]
393    PreQualificationLetter,
394    #[serde(rename = "APPRAISAL")]
395    Appraisal,
396    #[serde(rename = "PRE_APPROVAL_LETTER")]
397    PreApprovalLetter,
398    #[serde(rename = "PRE_APPROVAL_LETTER:_PREVIEW")]
399    PreApprovalLetterPreview,
400    #[serde(rename = "COMPLIANCE_REPORT")]
401    ComplianceReport,
402    #[serde(rename = "LOAN_SNAPSHOT")]
403    LoanSnapshot,
404    #[serde(rename = "HMDA_REPORT")]
405    HmdaReport,
406    #[serde(rename = "ATTACHMENT")]
407    Attachment,
408    #[serde(rename = "LETTER_OF_EXPLANATION:_GENERATED_CREDIT_INQUIRY")]
409    LetterOfExplanationGeneratedCreditInquiry,
410    #[serde(rename = "LETTER_OF_EXPLANATION:_GENERATED_ADDRESS_VERIFICATION")]
411    LetterOfExplanationGeneratedAddressVerification,
412    #[serde(rename = "GENERATED_GIFT_LETTER")]
413    GeneratedGiftLetter,
414    #[serde(rename = "LETTER_OF_EXPLANATION:_GENERATED_LATE_PAYMENT")]
415    LetterOfExplanationGeneratedLatePayment,
416    #[serde(rename = "LETTER_OF_EXPLANATION:_GENERATED_PUBLIC_RECORD")]
417    LetterOfExplanationGeneratedPublicRecord,
418    #[serde(rename = "LETTER_OF_EXPLANATION:_GENERATED_LARGE_DEPOSIT")]
419    LetterOfExplanationGeneratedLargeDeposit,
420    #[serde(rename = "MEDICAL_RESIDENCY_FELLOWSHIP")]
421    MedicalResidencyFellowship,
422    #[serde(rename = "MEDICAL_LICENSE_DIPLOMA")]
423    MedicalLicenseDiploma,
424    #[serde(rename = "NEAREST_LIVING_RELATIVE")]
425    NearestLivingRelative,
426    #[serde(rename = "EMPLOYMENT_CONTRACT")]
427    EmploymentContract,
428    #[serde(rename = "GENERATED_COST_WORKSHEET")]
429    GeneratedCostWorksheet,
430    #[serde(rename = "FNMA_NETPAY_REPORT_ASSETS")]
431    FnmaNetpayReportAssets,
432    #[serde(rename = "FNMA_NETPAY_REPORT_INCOME")]
433    FnmaNetpayReportIncome,
434    #[serde(rename = "FNMA_NETPAY_BORROWERS_REQUEST")]
435    FnmaNetpayBorrowersRequest,
436    #[serde(rename = "FNMA_NETPAY_GSE_API_XML")]
437    FnmaNetpayGseApiXml,
438    #[serde(rename = "KNOW_YOUR_CUSTOMER")]
439    KnowYourCustomer,
440    #[serde(rename = "CLOSING_PACKAGE")]
441    ClosingPackage,
442    #[serde(rename = "PROMISSORY_NOTE")]
443    PromissoryNote,
444    #[serde(rename = "DEED_OF_TRUST")]
445    DeedOfTrust,
446    #[serde(rename = "TITLE_DOCUMENT")]
447    TitleDocument,
448    #[serde(rename = "CLOSING_SETTLEMENT_ONLY")]
449    ClosingSettlementOnly,
450}
451#[derive(Debug, Serialize, Deserialize)]
452pub enum ApplicationExperienceType {
453    #[serde(rename = "FULL_APPLICATION")]
454    FullApplication,
455    #[serde(rename = "LENDER_ENTERED")]
456    LenderEntered,
457    #[serde(rename = "POST_SUBMISSION")]
458    PostSubmission,
459}
460#[derive(Debug, Serialize, Deserialize)]
461pub enum HomeLendingSolutionSubType {
462    #[serde(rename = "CANADA_MORTGAGE")]
463    CanadaMortgage,
464    #[serde(rename = "HELOAN")]
465    Heloan,
466    #[serde(rename = "HELOC")]
467    Heloc,
468    #[serde(rename = "MORTGAGE")]
469    Mortgage,
470    #[serde(rename = "MORTGAGE_MODIFICATION")]
471    MortgageModification,
472    #[serde(rename = "OTHER")]
473    Other,
474}
475#[derive(Debug, Serialize, Deserialize)]
476pub struct AffordabilityRangeSchema(pub Vec<serde_json::Value>);
477#[derive(Debug, Serialize, Deserialize)]
478pub struct ArchiveStatusSchema(pub bool);
479#[derive(Debug, Serialize, Deserialize)]
480pub struct ArchivedStatusSchema(pub bool);
481#[derive(Debug, Serialize, Deserialize)]
482pub struct ApplicationLinks {
483    #[serde(rename = "mismo")]
484    pub mismo: Option<serde_json::Value>,
485    #[serde(rename = "fannie")]
486    pub fannie: Option<serde_json::Value>,
487}
488impl std::fmt::Display for ApplicationLinks {
489    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
490        write!(f, "{}", serde_json::to_string(self).unwrap())
491    }
492}
493#[derive(Debug, Serialize, Deserialize)]
494pub enum PropertyUsageType {
495    #[serde(rename = "PRIMARY_RESIDENCE")]
496    PrimaryResidence,
497    #[serde(rename = "SECOND_HOME")]
498    SecondHome,
499    #[serde(rename = "PRIMARY_AND_INVESTMENT")]
500    PrimaryAndInvestment,
501    #[serde(rename = "INVESTMENT")]
502    Investment,
503}
504#[derive(Debug, Serialize, Deserialize)]
505pub struct EstimatedClosingDate(pub String);
506#[derive(Debug, Serialize, Deserialize)]
507pub struct LoanAmount(pub f64);
508#[derive(Debug, Serialize, Deserialize)]
509pub struct LosMilestoneSchema {
510    #[serde(rename = "losMilestone")]
511    ///ENUM describing that status of the application. The following milestones can be configured to be displayed to the Borrower on their landing page after submitting their application in Blend (SUBMITTED, PROCESSING, UNDERWRITING, CONDITIONAL APPROVAL, APPROVED, CLOSING, CLOSED, FUNDED). The other milestones are only visible to the lender application.
512    pub los_milestone: Option<String>,
513    #[serde(rename = "applicationId")]
514    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
515    pub application_id: Option<String>,
516}
517impl std::fmt::Display for LosMilestoneSchema {
518    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
519        write!(f, "{}", serde_json::to_string(self).unwrap())
520    }
521}
522#[derive(Debug, Serialize, Deserialize)]
523pub struct SingleLosMilestoneSchema {
524    #[serde(rename = "losMilestone")]
525    ///ENUM describing that status of the application. The following milestones can be configured to be displayed to the Borrower on their landing page after submitting their application in Blend (SUBMITTED, PROCESSING, UNDERWRITING, CONDITIONAL APPROVAL, APPROVED, CLOSING, CLOSED, FUNDED). The other milestones are only visible to the lender application.
526    pub los_milestone: String,
527}
528impl std::fmt::Display for SingleLosMilestoneSchema {
529    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
530        write!(f, "{}", serde_json::to_string(self).unwrap())
531    }
532}
533#[derive(Debug, Serialize, Deserialize)]
534pub enum LosMilestoneName {
535    #[serde(rename = "SUBMITTED")]
536    Submitted,
537    #[serde(rename = "PREQUALIFIED")]
538    Prequalified,
539    #[serde(rename = "PREAPPROVED")]
540    Preapproved,
541    #[serde(rename = "PROCESSING")]
542    Processing,
543    #[serde(rename = "UNDERWRITING")]
544    Underwriting,
545    #[serde(rename = "CONDITIONAL_APPROVAL")]
546    ConditionalApproval,
547    #[serde(rename = "APPROVED")]
548    Approved,
549    #[serde(rename = "CLOSING")]
550    Closing,
551    #[serde(rename = "CLOSED")]
552    Closed,
553    #[serde(rename = "APPRAISAL_ORDERED")]
554    AppraisalOrdered,
555    #[serde(rename = "APPRAISAL_RECEIVED")]
556    AppraisalReceived,
557    #[serde(rename = "CLEAR_TO_CLOSE")]
558    ClearToClose,
559    #[serde(rename = "DOCS_SENT")]
560    DocsSent,
561    #[serde(rename = "FUNDED")]
562    Funded,
563    #[serde(rename = "SET_UP")]
564    SetUp,
565    #[serde(rename = "DECISIONED")]
566    Decisioned,
567    #[serde(rename = "CONDITIONS_SUBMITTED")]
568    ConditionsSubmitted,
569    #[serde(rename = "APPRAISAL_APPROVED")]
570    AppraisalApproved,
571    #[serde(rename = "RATE_LOCKED")]
572    RateLocked,
573    #[serde(rename = "CLOSING_DISCLOSURE_SENT")]
574    ClosingDisclosureSent,
575    #[serde(rename = "DENIED")]
576    Denied,
577}
578#[derive(Debug, Serialize, Deserialize)]
579pub struct TaxpayerIdentifierSchema {
580    #[serde(rename = "value")]
581    ///The identifier itself, such as an applicant's social security number.
582    pub value: String,
583    #[serde(rename = "type")]
584    ///ENUM describing the type of identifier being used.
585    pub type_: String,
586}
587impl std::fmt::Display for TaxpayerIdentifierSchema {
588    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
589        write!(f, "{}", serde_json::to_string(self).unwrap())
590    }
591}
592#[derive(Debug, Serialize, Deserialize)]
593pub struct AddressSchema {
594    #[serde(rename = "streetAddressLine1")]
595    pub street_address_line1: String,
596    #[serde(rename = "streetAddressLine2")]
597    pub street_address_line2: Option<String>,
598    #[serde(rename = "city")]
599    pub city: String,
600    #[serde(rename = "state")]
601    ///Two-character US state code
602    pub state: String,
603    #[serde(rename = "zipCode")]
604    ///Five-digit US zip code
605    pub zip_code: String,
606    #[serde(rename = "zipCodePlusFour")]
607    ///Four-digit additional US zip code numbers
608    pub zip_code_plus_four: Option<String>,
609    #[serde(rename = "countyName")]
610    ///County name
611    pub county_name: Option<String>,
612}
613impl std::fmt::Display for AddressSchema {
614    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
615        write!(f, "{}", serde_json::to_string(self).unwrap())
616    }
617}
618#[derive(Debug, Serialize, Deserialize)]
619pub struct PartialAddressSchema {
620    #[serde(rename = "streetAddressLine1")]
621    pub street_address_line1: Option<String>,
622    #[serde(rename = "streetAddressLine2")]
623    pub street_address_line2: Option<String>,
624    #[serde(rename = "city")]
625    pub city: String,
626    #[serde(rename = "state")]
627    ///Two-digit US state code
628    pub state: String,
629    #[serde(rename = "zipCode")]
630    ///Five-digit US zip code
631    pub zip_code: String,
632    #[serde(rename = "zipCodePlusFour")]
633    ///Four-digit additional US zip code numbers
634    pub zip_code_plus_four: Option<String>,
635    #[serde(rename = "countyName")]
636    pub county_name: Option<String>,
637}
638impl std::fmt::Display for PartialAddressSchema {
639    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
640        write!(f, "{}", serde_json::to_string(self).unwrap())
641    }
642}
643#[derive(Debug, Serialize, Deserialize)]
644pub struct AddressWithCountyNameSchema {
645    #[serde(rename = "streetAddressLine1")]
646    pub street_address_line1: String,
647    #[serde(rename = "streetAddressLine2")]
648    pub street_address_line2: Option<String>,
649    #[serde(rename = "city")]
650    pub city: String,
651    #[serde(rename = "state")]
652    ///Two-character US state code
653    pub state: String,
654    #[serde(rename = "zipCode")]
655    ///Five-digit US zip code
656    pub zip_code: String,
657    #[serde(rename = "zipCodePlusFour")]
658    ///Four-digit additional US zip code numbers
659    pub zip_code_plus_four: Option<String>,
660    #[serde(rename = "countyName")]
661    pub county_name: Option<String>,
662}
663impl std::fmt::Display for AddressWithCountyNameSchema {
664    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
665        write!(f, "{}", serde_json::to_string(self).unwrap())
666    }
667}
668#[derive(Debug, Serialize, Deserialize)]
669pub struct NameSchema {
670    #[serde(rename = "firstName")]
671    pub first_name: String,
672    #[serde(rename = "middleName")]
673    pub middle_name: Option<String>,
674    #[serde(rename = "lastName")]
675    pub last_name: String,
676    #[serde(rename = "suffixName")]
677    pub suffix_name: Option<String>,
678}
679impl std::fmt::Display for NameSchema {
680    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
681        write!(f, "{}", serde_json::to_string(self).unwrap())
682    }
683}
684#[derive(Debug, Serialize, Deserialize)]
685pub struct BorrowerPairSchema {
686    #[serde(rename = "primaryBorrowerId")]
687    ///UUID of the first applicant on a specific 1003
688    pub primary_borrower_id: Option<String>,
689    #[serde(rename = "secondaryBorrowerId")]
690    ///UUID of the second applicant on a specific 1003
691    pub secondary_borrower_id: Option<String>,
692}
693impl std::fmt::Display for BorrowerPairSchema {
694    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
695        write!(f, "{}", serde_json::to_string(self).unwrap())
696    }
697}
698#[derive(Debug, Serialize, Deserialize)]
699pub struct SignerInfoSchema {
700    #[serde(rename = "name")]
701    ///Full name of signer
702    pub name: String,
703    #[serde(rename = "partyId")]
704    ///Party UUID of signer
705    pub party_id: String,
706    #[serde(rename = "status")]
707    ///Signing status
708    pub status: String,
709    #[serde(rename = "completedAt")]
710    ///UTC Timestamp of signature
711    pub completed_at: String,
712}
713impl std::fmt::Display for SignerInfoSchema {
714    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
715        write!(f, "{}", serde_json::to_string(self).unwrap())
716    }
717}
718#[derive(Debug, Serialize, Deserialize)]
719pub struct DocumentAdditionalEntities {
720    #[serde(rename = "entityType")]
721    ///Entities ids of a given entity type
722    pub entity_type: Option<Vec<String>>,
723}
724impl std::fmt::Display for DocumentAdditionalEntities {
725    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
726        write!(f, "{}", serde_json::to_string(self).unwrap())
727    }
728}
729#[derive(Debug, Serialize, Deserialize)]
730pub struct ApplicationRequestPartySchema {
731    #[serde(rename = "name")]
732    pub name: NameSchema,
733    #[serde(rename = "email")]
734    ///Party's email
735    pub email: String,
736    #[serde(rename = "taxpayerIdentifier")]
737    pub taxpayer_identifier: Option<TaxpayerIdentifierSchema>,
738    #[serde(rename = "dateOfBirth")]
739    ///UTC Timestamp of the Date of Birth
740    pub date_of_birth: Option<String>,
741    #[serde(rename = "homePhone")]
742    ///Nine-digit home phone number
743    pub home_phone: Option<String>,
744    #[serde(rename = "currentAddress")]
745    pub current_address: Option<AddressParamSchema>,
746    #[serde(rename = "mailingAddress")]
747    pub mailing_address: Option<AddressParamSchema>,
748}
749impl std::fmt::Display for ApplicationRequestPartySchema {
750    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
751        write!(f, "{}", serde_json::to_string(self).unwrap())
752    }
753}
754#[derive(Debug, Serialize, Deserialize)]
755pub struct IncomeSchema {
756    #[serde(rename = "type")]
757    ///ENUM describing what type of income this is
758    pub type_: String,
759    #[serde(rename = "yearlyIncome")]
760    pub yearly_income: Option<serde_json::Value>,
761    #[serde(rename = "description")]
762    ///A description of this income.
763    pub description: Option<String>,
764}
765impl std::fmt::Display for IncomeSchema {
766    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
767        write!(f, "{}", serde_json::to_string(self).unwrap())
768    }
769}
770#[derive(Debug, Serialize, Deserialize)]
771pub struct EmployerSchemaBase {
772    #[serde(rename = "status")]
773    ///ENUM describing whether this employer is current or previous
774    pub status: String,
775    #[serde(rename = "name")]
776    ///The employer's name.
777    pub name: Option<String>,
778    #[serde(rename = "type")]
779    ///Employment type
780    pub type_: Option<String>,
781    #[serde(rename = "address")]
782    pub address: Option<AddressSchema>,
783    #[serde(rename = "phoneNumber")]
784    ///Employer phone number
785    pub phone_number: Option<f64>,
786    #[serde(rename = "startDate")]
787    ///UTC Timestamp of the start of employment
788    pub start_date: Option<String>,
789    #[serde(rename = "endDate")]
790    ///UTC Timestamp of the end of employment
791    pub end_date: Option<String>,
792    #[serde(rename = "incomes")]
793    pub incomes: Option<Vec<IncomeSchema>>,
794}
795impl std::fmt::Display for EmployerSchemaBase {
796    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
797        write!(f, "{}", serde_json::to_string(self).unwrap())
798    }
799}
800#[derive(Debug, Serialize, Deserialize)]
801pub struct EmployerResponseSchema {
802    #[serde(rename = "employers")]
803    pub employers: Option<Vec<serde_json::Value>>,
804}
805impl std::fmt::Display for EmployerResponseSchema {
806    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
807        write!(f, "{}", serde_json::to_string(self).unwrap())
808    }
809}
810#[derive(Debug, Serialize, Deserialize)]
811pub struct EmployerIngestSchema {
812    #[serde(rename = "employers")]
813    pub employers: Option<Vec<EmployerSchemaBase>>,
814}
815impl std::fmt::Display for EmployerIngestSchema {
816    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
817        write!(f, "{}", serde_json::to_string(self).unwrap())
818    }
819}
820#[derive(Debug, Serialize, Deserialize)]
821pub struct BorrowerAddressSchema {
822    #[serde(rename = "type")]
823    ///Type of address
824    pub type_: Option<String>,
825    #[serde(rename = "address")]
826    pub address: Option<AddressSchema>,
827}
828impl std::fmt::Display for BorrowerAddressSchema {
829    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
830        write!(f, "{}", serde_json::to_string(self).unwrap())
831    }
832}
833#[derive(Debug, Serialize, Deserialize)]
834pub struct PartyAddressSchema {
835    #[serde(rename = "type")]
836    ///Type of address
837    pub type_: Option<String>,
838    #[serde(rename = "address")]
839    pub address: Option<AddressSchema>,
840    #[serde(rename = "moveInDate")]
841    ///UTC Timestamp of the move in for current address
842    pub move_in_date: Option<String>,
843}
844impl std::fmt::Display for PartyAddressSchema {
845    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
846        write!(f, "{}", serde_json::to_string(self).unwrap())
847    }
848}
849#[derive(Debug, Serialize, Deserialize)]
850pub struct AddressParamSchema(pub serde_json::Value);
851#[derive(Debug, Serialize, Deserialize)]
852pub struct UserAssignmentRequestSchema {
853    #[serde(rename = "assignees")]
854    pub assignees: Option<Vec<UserAssignmentSchema>>,
855}
856impl std::fmt::Display for UserAssignmentRequestSchema {
857    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
858        write!(f, "{}", serde_json::to_string(self).unwrap())
859    }
860}
861#[derive(Debug, Serialize, Deserialize)]
862pub struct UserAssignmentResponseSchema(pub Vec<UserAssignmentSchema>);
863#[derive(Debug, Serialize, Deserialize)]
864pub struct UserAssignmentSchema {
865    #[serde(rename = "userId")]
866    ///UUID of a valid lender user
867    pub user_id: String,
868    #[serde(rename = "role")]
869    ///Assignment role (defaults to ASSIGNEE)
870    pub role: Option<String>,
871}
872impl std::fmt::Display for UserAssignmentSchema {
873    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
874        write!(f, "{}", serde_json::to_string(self).unwrap())
875    }
876}
877#[derive(Debug, Serialize, Deserialize)]
878pub struct LosPartyIdSchema(pub String);
879#[derive(Debug, Serialize, Deserialize)]
880pub struct PartySchema {
881    #[serde(rename = "id")]
882    ///The UUID of the Party in Blend's system. The static identifier that should be used to connect the party's identity across Blend and external integrations.
883    pub id: String,
884    #[serde(rename = "applicationId")]
885    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
886    pub application_id: String,
887    #[serde(rename = "type")]
888    ///Identifying type of party to the application
889    pub type_: String,
890    #[serde(rename = "name")]
891    pub name: Option<NameSchema>,
892    #[serde(rename = "nameId")]
893    ///A unique identifier of the party passed to Blend during SSO login.
894    pub name_id: Option<String>,
895    #[serde(rename = "email")]
896    ///Party email
897    pub email: Option<String>,
898    #[serde(rename = "status")]
899    ///An ENUM for the status of the party in the application.
900    pub status: Option<String>,
901    #[serde(rename = "dateOfBirth")]
902    ///UTC timestamp representing the date of birth
903    pub date_of_birth: Option<String>,
904    #[serde(rename = "phoneNumbers")]
905    pub phone_numbers: Option<Vec<PhoneNumberSchema>>,
906    #[serde(rename = "econsent")]
907    pub econsent: Option<EconsentSchema>,
908    #[serde(rename = "relationship")]
909    pub relationship: Option<RelationshipSchema>,
910    #[serde(rename = "veteranStatus")]
911    pub veteran_status: Option<VeteranStatusSchema>,
912    #[serde(rename = "losPartyId")]
913    ///The UUID or GUID of the current party in the LOS.
914    pub los_party_id: Option<String>,
915    #[serde(rename = "credit")]
916    pub credit: Option<PartyCreditSchema>,
917    #[serde(rename = "liabilities")]
918    pub liabilities: Option<Vec<PartyLiabilitySchema>>,
919    #[serde(rename = "incomes")]
920    pub incomes: Option<Vec<ConsumerLendingIncomeSchema>>,
921    #[serde(rename = "verificationRefId")]
922    pub verification_ref_id: Option<VerificationRefIdSchema>,
923    #[serde(rename = "addresses")]
924    pub addresses: Option<Vec<PartyAddressSchema>>,
925    #[serde(rename = "taxpayerIdentifier")]
926    pub taxpayer_identifier: Option<TaxpayerIdentifierSchema>,
927    #[serde(rename = "firstTimeHomeBuyer")]
928    ///Indicates whether borrower is a first-time home buyer.
929    pub first_time_home_buyer: Option<bool>,
930    #[serde(rename = "customFields")]
931    ///Custom fields on GET responses for supported resources
932    pub custom_fields: Option<CustomFields>,
933    #[serde(rename = "customMetadata")]
934    ///Custom metadata on GET responses for supported resources
935    pub custom_metadata: Option<CustomMetadata>,
936}
937impl std::fmt::Display for PartySchema {
938    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
939        write!(f, "{}", serde_json::to_string(self).unwrap())
940    }
941}
942#[derive(Debug, Serialize, Deserialize)]
943pub struct EconsentSchema {
944    #[serde(rename = "status")]
945    ///State of econsent
946    pub status: Option<String>,
947    #[serde(rename = "date")]
948    ///UTC Timestamp of when Econsent was last updated
949    pub date: Option<String>,
950    #[serde(rename = "ip")]
951    ///IP Address from which econsent was given
952    pub ip: Option<String>,
953}
954impl std::fmt::Display for EconsentSchema {
955    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
956        write!(f, "{}", serde_json::to_string(self).unwrap())
957    }
958}
959#[derive(Debug, Serialize, Deserialize)]
960pub struct CustomFields {
961    #[serde(rename = "fieldName")]
962    pub field_name: Option<CustomFieldSchema>,
963}
964impl std::fmt::Display for CustomFields {
965    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
966        write!(f, "{}", serde_json::to_string(self).unwrap())
967    }
968}
969#[derive(Debug, Serialize, Deserialize)]
970pub struct CustomMetadata {
971    #[serde(rename = "fieldName")]
972    pub field_name: Option<CustomFieldSchema>,
973}
974impl std::fmt::Display for CustomMetadata {
975    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
976        write!(f, "{}", serde_json::to_string(self).unwrap())
977    }
978}
979#[derive(Debug, Serialize, Deserialize)]
980pub struct CustomFieldSchema {
981    #[serde(rename = "fieldValue")]
982    ///value of the field
983    pub field_value: Option<String>,
984    #[serde(rename = "createdAt")]
985    ///UTC Timestamp of when the field was created or updated
986    pub created_at: Option<String>,
987}
988impl std::fmt::Display for CustomFieldSchema {
989    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
990        write!(f, "{}", serde_json::to_string(self).unwrap())
991    }
992}
993#[derive(Debug, Serialize, Deserialize)]
994pub struct RequestCustomFields {}
995impl std::fmt::Display for RequestCustomFields {
996    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
997        write!(f, "{}", serde_json::to_string(self).unwrap())
998    }
999}
1000#[derive(Debug, Serialize, Deserialize)]
1001pub struct RequestCustomMetadata {}
1002impl std::fmt::Display for RequestCustomMetadata {
1003    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1004        write!(f, "{}", serde_json::to_string(self).unwrap())
1005    }
1006}
1007#[derive(Debug, Serialize, Deserialize)]
1008pub struct PostEconsentSchema {
1009    #[serde(rename = "status")]
1010    ///State of econsent
1011    pub status: String,
1012    #[serde(rename = "date")]
1013    ///UTC Timestamp of when Econsent was given. Optional. Null is accepted.
1014    pub date: Option<String>,
1015    #[serde(rename = "ip")]
1016    ///IP Address from which econsent was given. Optional. Null is accepted.
1017    pub ip: Option<String>,
1018}
1019impl std::fmt::Display for PostEconsentSchema {
1020    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1021        write!(f, "{}", serde_json::to_string(self).unwrap())
1022    }
1023}
1024#[derive(Debug, Serialize, Deserialize)]
1025pub struct RelationshipSchema {
1026    #[serde(rename = "maritalStatus")]
1027    ///Marital Status
1028    pub marital_status: Option<String>,
1029}
1030impl std::fmt::Display for RelationshipSchema {
1031    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1032        write!(f, "{}", serde_json::to_string(self).unwrap())
1033    }
1034}
1035#[derive(Debug, Serialize, Deserialize)]
1036pub struct VeteranStatusSchema {
1037    #[serde(rename = "status")]
1038    ///Veteran Status
1039    pub status: Option<String>,
1040}
1041impl std::fmt::Display for VeteranStatusSchema {
1042    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1043        write!(f, "{}", serde_json::to_string(self).unwrap())
1044    }
1045}
1046#[derive(Debug, Serialize, Deserialize)]
1047pub struct OtherMortgageSchema {
1048    #[serde(rename = "creditLimit")]
1049    ///Credit Limit in dollars and cents
1050    pub credit_limit: Option<f64>,
1051    #[serde(rename = "creditorName")]
1052    ///Creditor Name
1053    pub creditor_name: Option<String>,
1054    #[serde(rename = "lienAmount")]
1055    ///Lien Amount
1056    pub lien_amount: Option<f64>,
1057    #[serde(rename = "lienType")]
1058    ///Lien Type ENUM
1059    pub lien_type: Option<String>,
1060    #[serde(rename = "loanAmount")]
1061    ///Loan Amount
1062    pub loan_amount: Option<f64>,
1063    #[serde(rename = "monthlyPayment")]
1064    ///Monthly Payment in dollars and cents
1065    pub monthly_payment: Option<f64>,
1066    #[serde(rename = "type")]
1067    ///Mortgage Type
1068    pub type_: Option<String>,
1069    #[serde(rename = "willPayOff")]
1070    ///Will pay off this mortgage at or before closing
1071    pub will_pay_off: Option<bool>,
1072}
1073impl std::fmt::Display for OtherMortgageSchema {
1074    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1075        write!(f, "{}", serde_json::to_string(self).unwrap())
1076    }
1077}
1078#[derive(Debug, Serialize, Deserialize)]
1079pub struct VerificationRefIdSchema {
1080    #[serde(rename = "id")]
1081    ///The most up to date UUID used to reference verified assets, income, and/or employment
1082    pub id: String,
1083    #[serde(rename = "lastUpdated")]
1084    ///UTC Timestamp of when this verification reference id was generated.
1085    pub last_updated: String,
1086}
1087impl std::fmt::Display for VerificationRefIdSchema {
1088    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1089        write!(f, "{}", serde_json::to_string(self).unwrap())
1090    }
1091}
1092#[derive(Debug, Serialize, Deserialize)]
1093pub struct PartyLiabilitySchema {
1094    #[serde(rename = "type")]
1095    ///ENUM indicating the type of liability
1096    pub type_: String,
1097    #[serde(rename = "monthlyPayment")]
1098    ///Monthly payment amount
1099    pub monthly_payment: f64,
1100}
1101impl std::fmt::Display for PartyLiabilitySchema {
1102    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1103        write!(f, "{}", serde_json::to_string(self).unwrap())
1104    }
1105}
1106#[derive(Debug, Serialize, Deserialize)]
1107pub struct PartyCreditSchema {
1108    #[serde(rename = "creditReferenceNumber")]
1109    ///Unique identifier for the credit pull as returned by the credit provider.
1110    pub credit_reference_number: Option<String>,
1111    #[serde(rename = "creditPullDate")]
1112    ///UTC Timestamp of when credit was pulled for this party.
1113    pub credit_pull_date: Option<String>,
1114    #[serde(rename = "creditPullType")]
1115    ///Pull Type of the active credit report for this party.
1116    pub credit_pull_type: Option<String>,
1117    #[serde(rename = "equifaxScore")]
1118    ///Party's Equifax credit score.
1119    pub equifax_score: Option<f64>,
1120    #[serde(rename = "experianScore")]
1121    ///Party's Experian credit score.
1122    pub experian_score: Option<f64>,
1123    #[serde(rename = "transUnionScore")]
1124    ///Party's TransUnion credit score.
1125    pub trans_union_score: Option<f64>,
1126    #[serde(rename = "estimatedCreditScore")]
1127    ///Party's self-stated credit score.
1128    pub estimated_credit_score: Option<f64>,
1129}
1130impl std::fmt::Display for PartyCreditSchema {
1131    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1132        write!(f, "{}", serde_json::to_string(self).unwrap())
1133    }
1134}
1135#[derive(Debug, Serialize, Deserialize)]
1136pub struct PartyResponseSchema {
1137    #[serde(rename = "id")]
1138    ///The UUID of the Party in Blend's system. The static identifier that should be used to connect the party's identity across Blend and external integrations.
1139    pub id: String,
1140    #[serde(rename = "applicationId")]
1141    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
1142    pub application_id: String,
1143    #[serde(rename = "type")]
1144    pub type_: String,
1145    #[serde(rename = "email")]
1146    pub email: Option<String>,
1147    #[serde(rename = "name")]
1148    pub name: Option<NameSchema>,
1149    #[serde(rename = "losPartyId")]
1150    ///Party ID in LOS
1151    pub los_party_id: Option<String>,
1152    #[serde(rename = "econsent")]
1153    pub econsent: Option<EconsentSchema>,
1154    #[serde(rename = "customFields")]
1155    ///Custom fields on GET responses for supported resources
1156    pub custom_fields: Option<CustomFields>,
1157    #[serde(rename = "customMetadata")]
1158    ///Custom metadata on GET responses for supported resources
1159    pub custom_metadata: Option<CustomMetadata>,
1160}
1161impl std::fmt::Display for PartyResponseSchema {
1162    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1163        write!(f, "{}", serde_json::to_string(self).unwrap())
1164    }
1165}
1166#[derive(Debug, Serialize, Deserialize)]
1167pub struct PhoneNumberSchema {
1168    #[serde(rename = "phoneNumber")]
1169    ///String representation of the phone number
1170    pub phone_number: Option<String>,
1171    #[serde(rename = "phoneNumberType")]
1172    ///Type of phone number
1173    pub phone_number_type: Option<String>,
1174}
1175impl std::fmt::Display for PhoneNumberSchema {
1176    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1177        write!(f, "{}", serde_json::to_string(self).unwrap())
1178    }
1179}
1180#[derive(Debug, Serialize, Deserialize)]
1181pub struct RealtorRequestSchema {
1182    #[serde(rename = "applicationId")]
1183    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
1184    pub application_id: String,
1185    #[serde(rename = "name")]
1186    pub name: NameSchema,
1187    #[serde(rename = "contact")]
1188    pub contact: Option<serde_json::Value>,
1189}
1190impl std::fmt::Display for RealtorRequestSchema {
1191    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1192        write!(f, "{}", serde_json::to_string(self).unwrap())
1193    }
1194}
1195#[derive(Debug, Serialize, Deserialize)]
1196pub struct VerificationDataSchema {
1197    #[serde(rename = "code")]
1198    pub code: String,
1199    #[serde(rename = "hint")]
1200    pub hint: Option<String>,
1201}
1202impl std::fmt::Display for VerificationDataSchema {
1203    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1204        write!(f, "{}", serde_json::to_string(self).unwrap())
1205    }
1206}
1207#[derive(Debug, Serialize, Deserialize)]
1208pub struct DocumentSchema {
1209    #[serde(rename = "id")]
1210    ///The UUID of the Document in Blend's system. The static identifier that should be used to connect the document's identity across Blend and external integrations.
1211    pub id: Option<String>,
1212    #[serde(rename = "name")]
1213    ///Document Filename
1214    pub name: Option<String>,
1215    #[serde(rename = "type")]
1216    ///Blend document type
1217    pub type_: Option<String>,
1218    #[serde(rename = "applicationId")]
1219    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
1220    pub application_id: Option<String>,
1221    #[serde(rename = "losType")]
1222    ///LOS document type (used with Blend document templating)
1223    pub los_type: Option<String>,
1224    #[serde(rename = "losTypeId")]
1225    ///LOS document id (used for external tracking)
1226    pub los_type_id: Option<String>,
1227    #[serde(rename = "created")]
1228    ///UTC Timestamp of document creation
1229    pub created: Option<String>,
1230    #[serde(rename = "partyIds")]
1231    ///UUIDs of the Parties associated with this document
1232    pub party_ids: Option<Vec<String>>,
1233    #[serde(rename = "downloadUrl")]
1234    ///URL where the Document can be Downloaded from
1235    pub download_url: Option<String>,
1236    #[serde(rename = "lastExportedAt")]
1237    ///UTC Timestamp of last export for document
1238    pub last_exported_at: Option<String>,
1239    #[serde(rename = "text")]
1240    ///Description used in UI
1241    pub text: Option<String>,
1242    #[serde(rename = "category")]
1243    ///Document's hierarchical category
1244    pub category: Option<String>,
1245    #[serde(rename = "signerInfo")]
1246    pub signer_info: Option<SignerInfoSchema>,
1247    #[serde(rename = "customFields")]
1248    ///Custom fields on GET responses for supported resources
1249    pub custom_fields: Option<CustomFields>,
1250    #[serde(rename = "customMetadata")]
1251    ///Custom metadata on GET responses for supported resources
1252    pub custom_metadata: Option<CustomMetadata>,
1253    #[serde(rename = "additionalEntities")]
1254    ///Additional entities ids associated with the document
1255    pub additional_entities: Option<DocumentAdditionalEntities>,
1256}
1257impl std::fmt::Display for DocumentSchema {
1258    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1259        write!(f, "{}", serde_json::to_string(self).unwrap())
1260    }
1261}
1262#[derive(Debug, Serialize, Deserialize)]
1263pub struct DocumentRequestSchema {
1264    #[serde(rename = "file")]
1265    ///the file to be attached to the application
1266    pub file: String,
1267    #[serde(rename = "applicationId")]
1268    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
1269    pub application_id: String,
1270    #[serde(rename = "type")]
1271    ///Blend document type
1272    pub type_: Option<String>,
1273    #[serde(rename = "losType")]
1274    ///LOS document type (used with Blend document templating)
1275    pub los_type: Option<String>,
1276    #[serde(rename = "losTypeId")]
1277    ///LOS document id (used for external tracking)
1278    pub los_type_id: Option<String>,
1279    #[serde(rename = "partyIds")]
1280    ///UUIDs of the Parties associated with this document
1281    pub party_ids: Option<Vec<String>>,
1282    #[serde(rename = "name")]
1283    pub name: Option<String>,
1284    #[serde(rename = "status")]
1285    ///ENUM describing the Document Status
1286    pub status: Option<String>,
1287    #[serde(rename = "shareWithAllParties")]
1288    ///If set to true, uploaded document becomes accessible to borrowers; otherwise, only lender can view the document
1289    pub share_with_all_parties: Option<bool>,
1290    #[serde(rename = "customFields")]
1291    ///field name of the custom field
1292    pub custom_fields: Option<String>,
1293    #[serde(rename = "customMetadata")]
1294    ///field name of the custom metadata
1295    pub custom_metadata: Option<String>,
1296}
1297impl std::fmt::Display for DocumentRequestSchema {
1298    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1299        write!(f, "{}", serde_json::to_string(self).unwrap())
1300    }
1301}
1302#[derive(Debug, Serialize, Deserialize)]
1303pub struct DocumentExportStatusSchema {
1304    #[serde(rename = "exportedAt")]
1305    ///UTC timestamp of export time
1306    pub exported_at: Option<String>,
1307    #[serde(rename = "exportedBy")]
1308    ///ID of the user who initiated the export call
1309    pub exported_by: Option<String>,
1310    #[serde(rename = "partnerId")]
1311    ///Role of the user who initiated the export call
1312    pub partner_id: Option<String>,
1313    #[serde(rename = "exportedTo")]
1314    ///The UUID or GUID of the current resource in the LOS AFTER initial export to the LOS. For loans this may match the loan reference number depending on the LOS and if the customer has selected to use only GUIDs instead of UUIDs in their LOS settings. For all other resources, it is the static identifier of this resource in the LOS.
1315    pub exported_to: Option<String>,
1316}
1317impl std::fmt::Display for DocumentExportStatusSchema {
1318    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1319        write!(f, "{}", serde_json::to_string(self).unwrap())
1320    }
1321}
1322#[derive(Debug, Serialize, Deserialize)]
1323pub struct ApplicationSchema {
1324    #[serde(rename = "id")]
1325    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
1326    pub id: String,
1327    #[serde(rename = "referenceNumber")]
1328    ///A mutable identifier of the application. Not safe to use to connect the application's identity across Blend and external systems because it can and (for most implementations) will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
1329    pub reference_number: Option<String>,
1330    #[serde(rename = "losId")]
1331    ///The UUID or GUID of the current resource in the LOS AFTER initial export to the LOS. For loans this may match the loan reference number depending on the LOS and if the customer has selected to use only GUIDs instead of UUIDs in their LOS settings. For all other resources, it is the static identifier of this resource in the LOS.
1332    pub los_id: Option<String>,
1333    #[serde(rename = "crmId")]
1334    ///The unique identifier of the application in a lender's Customer Relationship Management (CRM) system (e.g. Salesforce, Velocify, etc.). This value should not change over time and should be used to connect the application's identity between Blend and the CRM.
1335    pub crm_id: Option<String>,
1336    #[serde(rename = "status")]
1337    ///An ENUM for the status of the application. This field is being deprecated but still controls lender UI and TRID
1338    pub status: Option<String>,
1339    #[serde(rename = "applicationStatus")]
1340    ///An ENUM for the status of the application. This field and Party.status replaces status.
1341    pub application_status: Option<String>,
1342    #[serde(rename = "parties")]
1343    ///An array of all the parties belonging to the application
1344    pub parties: Option<Vec<PartySchema>>,
1345    #[serde(rename = "property")]
1346    ///Object storing information about the property corresponding to a home lending application
1347    pub property: Option<PropertySchema>,
1348    #[serde(rename = "leadId")]
1349    ///Lead ID associated with this application in the system that referred it to Blend. Primarily used for LeadGen integration use cases.
1350    pub lead_id: Option<String>,
1351    #[serde(rename = "solutionSubType")]
1352    ///An ENUM for the type of solution to which the application corresponds
1353    pub solution_sub_type: Option<String>,
1354    #[serde(rename = "loanPurposeType")]
1355    ///An ENUM describing the purpose of the application
1356    pub loan_purpose_type: Option<String>,
1357    #[serde(rename = "communityId")]
1358    pub community_id: Option<String>,
1359    #[serde(rename = "communityName")]
1360    ///The community that the home resides in
1361    pub community_name: Option<String>,
1362    #[serde(rename = "referralBrokerageConsentGiven")]
1363    ///A boolean indicating whether the borrower has opted into using Blend Realty
1364    pub referral_brokerage_consent_given: Option<bool>,
1365    #[serde(rename = "appSource")]
1366    ///The tag corresponding to a marketing campaign. This identifier can be used to gauge which links are most effective within certain campaigns.
1367    pub app_source: Option<String>,
1368    #[serde(rename = "createdDate")]
1369    ///UTC timestamp of the application creation time
1370    pub created_date: Option<String>,
1371    #[serde(rename = "createdBy")]
1372    pub created_by: Option<CreatedByObject>,
1373    #[serde(rename = "estimatedClosingDate")]
1374    ///UTC timestamp of the estimated date to close on the subject property
1375    pub estimated_closing_date: Option<String>,
1376    #[serde(rename = "exportedDate")]
1377    ///UTC timestamp of the application exported time
1378    pub exported_date: Option<String>,
1379    #[serde(rename = "preApprovalLetterDatetime")]
1380    ///UTC timestamp of when the Preapproval Letter was generated
1381    pub pre_approval_letter_datetime: Option<String>,
1382    #[serde(rename = "applicationExperienceType")]
1383    ///ENUM describing the type of borrower experience for this application
1384    pub application_experience_type: Option<String>,
1385    #[serde(rename = "assignees")]
1386    pub assignees: Option<UserAssignmentResponseSchema>,
1387    #[serde(rename = "applicationTemplateId")]
1388    ///Application template applied to this application. Determines what kind and how much information the applicant will be required to enter to complete the application.
1389    pub application_template_id: Option<String>,
1390    #[serde(rename = "loanAmount")]
1391    ///The amount of money (dollars and cents) for which the applicant is applying
1392    pub loan_amount: Option<f64>,
1393    #[serde(rename = "purchasePrice")]
1394    ///The purchase price for the subject property of the loan
1395    pub purchase_price: Option<f64>,
1396    #[serde(rename = "applicationSource")]
1397    ///Identifier of where the application originally came from. Used to trace which system programmatically created an application in Blend when it wasn't initiated by a Lender or a Borrower via Blend's web application.
1398    pub application_source: Option<ApplicationSourceSchema>,
1399    #[serde(rename = "archivedStatus")]
1400    ///If set to true, will archive the referenced application
1401    pub archived_status: Option<bool>,
1402    #[serde(rename = "links")]
1403    pub links: Option<ApplicationLinks>,
1404    #[serde(rename = "interestRate")]
1405    ///The interest rate in percentage points
1406    pub interest_rate: Option<f64>,
1407    #[serde(rename = "mortgageType")]
1408    ///ENUM describing the type of the mortgage
1409    pub mortgage_type: Option<String>,
1410    #[serde(rename = "tridTriggeredDate")]
1411    ///UTC timestamp of when TRID was triggered on the application
1412    pub trid_triggered_date: Option<String>,
1413    #[serde(rename = "debtToIncomeRatio")]
1414    ///The combined debt to income ratio (DTI) of all borrowers on the loan
1415    pub debt_to_income_ratio: Option<f64>,
1416    #[serde(rename = "affordabilityRange")]
1417    pub affordability_range: Option<AffordabilityRangeSchema>,
1418}
1419impl std::fmt::Display for ApplicationSchema {
1420    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1421        write!(f, "{}", serde_json::to_string(self).unwrap())
1422    }
1423}
1424#[derive(Debug, Serialize, Deserialize)]
1425pub struct PropertySchema {
1426    #[serde(rename = "address")]
1427    pub address: Option<AddressSchema>,
1428    #[serde(rename = "type")]
1429    ///ENUM describing the type of property to which the application pertains
1430    pub type_: Option<String>,
1431    #[serde(rename = "usageType")]
1432    ///ENUM describing the property's intended usage category
1433    pub usage_type: Option<String>,
1434    #[serde(rename = "searchType")]
1435    ///ENUM describing the applicant's search stage
1436    pub search_type: Option<String>,
1437    #[serde(rename = "searchTimeline")]
1438    ///ENUM describing the applicant's timeline for searching for a property
1439    pub search_timeline: Option<String>,
1440    #[serde(rename = "value")]
1441    ///The property's value in dollars and cents
1442    pub value: Option<f64>,
1443    #[serde(rename = "otherMortgages")]
1444    ///Other mortgages on the subject property (only relevant for refinances)
1445    pub other_mortgages: Option<Vec<OtherMortgageSchema>>,
1446}
1447impl std::fmt::Display for PropertySchema {
1448    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1449        write!(f, "{}", serde_json::to_string(self).unwrap())
1450    }
1451}
1452#[derive(Debug, Serialize, Deserialize)]
1453pub struct ApplicationSourceSchema {
1454    #[serde(rename = "type")]
1455    ///Type of system the application came from. If set to Other, it is recommended to also set a name.
1456    pub type_: String,
1457    #[serde(rename = "name")]
1458    ///Name of the system creating the application. For example, Salesforce or Empower.
1459    pub name: Option<String>,
1460}
1461impl std::fmt::Display for ApplicationSourceSchema {
1462    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1463        write!(f, "{}", serde_json::to_string(self).unwrap())
1464    }
1465}
1466#[derive(Debug, Serialize, Deserialize)]
1467pub struct ApplicationTemplateIdSchema(pub String);
1468#[derive(Debug, Serialize, Deserialize)]
1469pub struct ApplicationRequestSchema {
1470    #[serde(rename = "solutionSubType")]
1471    ///ENUM for the subtype of home loan application being created
1472    pub solution_sub_type: Option<String>,
1473    #[serde(rename = "applicationExperienceType")]
1474    ///ENUM describing the type of borrower experience for this application
1475    pub application_experience_type: Option<String>,
1476    #[serde(rename = "loanPurposeType")]
1477    ///ENUM describing the reason for this home loan application
1478    pub loan_purpose_type: Option<String>,
1479    #[serde(rename = "property")]
1480    ///Object storing information about the property corresponding to a home lending application
1481    pub property: Option<PropertySchema>,
1482    #[serde(rename = "loanAmount")]
1483    ///The amount of money (dollars and cents) for which the applicant is applying
1484    pub loan_amount: Option<f64>,
1485    #[serde(rename = "purchasePrice")]
1486    ///The purchase price for the subject property of the loan. This field is only supported for new URLA mortgage applications.
1487    pub purchase_price: Option<f64>,
1488    #[serde(rename = "communityId")]
1489    pub community_id: Option<String>,
1490    #[serde(rename = "party")]
1491    pub party: ApplicationRequestPartySchema,
1492    #[serde(rename = "leadId")]
1493    ///Lead ID associated with this application in the system that referred it to Blend. Primarily used for LeadGen integration use cases.
1494    pub lead_id: Option<String>,
1495    #[serde(rename = "crmId")]
1496    ///The unique identifier of the application in a lender's Customer Relationship Management (CRM) system (e.g. Salesforce, Velocify, etc.). This value should not change over time and should be used to connect the application's identity between Blend and the CRM.
1497    pub crm_id: Option<String>,
1498    #[serde(rename = "losId")]
1499    ///The UUID or GUID of the current resource in the LOS AFTER initial export to the LOS. For loans this may match the loan reference number depending on the LOS and if the customer has selected to use only GUIDs instead of UUIDs in their LOS settings. For all other resources, it is the static identifier of this resource in the LOS.
1500    pub los_id: Option<String>,
1501    #[serde(rename = "referenceNumber")]
1502    ///A mutable identifier of the application. Not safe to use to connect the application's identity across Blend and external systems because it can and (for most implementations) will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
1503    pub reference_number: Option<String>,
1504    #[serde(rename = "sendEmailInvite")]
1505    ///If set to true, sends an email invite to borrower with a link to start the application
1506    pub send_email_invite: Option<bool>,
1507    #[serde(rename = "applicationTemplateId")]
1508    ///Application template applied to this application. Determines what kind and how much information the applicant will be required to enter to complete the application.
1509    pub application_template_id: Option<String>,
1510    #[serde(rename = "applicationSource")]
1511    ///Identifier of where the application originally came from. Used to trace which system programmatically created an application in Blend when it wasn't initiated by a Lender or a Borrower via Blend's web application.
1512    pub application_source: Option<ApplicationSourceSchema>,
1513    #[serde(rename = "interestRate")]
1514    ///The interest rate in percentage points
1515    pub interest_rate: Option<f64>,
1516    #[serde(rename = "mortgageType")]
1517    ///ENUM describing the type of the mortgage
1518    pub mortgage_type: Option<String>,
1519    #[serde(rename = "customFields")]
1520    ///Custom fields on GET responses for supported resources
1521    pub custom_fields: Option<CustomFields>,
1522    #[serde(rename = "customMetadata")]
1523    ///Custom metadata on GET responses for supported resources
1524    pub custom_metadata: Option<CustomMetadata>,
1525    #[serde(rename = "branchIdOverride")]
1526    ///A specific branch ID, used for origination attribution, that when set takes precedence over the originating user's
1527    pub branch_id_override: Option<String>,
1528}
1529impl std::fmt::Display for ApplicationRequestSchema {
1530    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1531        write!(f, "{}", serde_json::to_string(self).unwrap())
1532    }
1533}
1534#[derive(Debug, Serialize, Deserialize)]
1535pub struct PackageSchema {
1536    #[serde(rename = "id")]
1537    ///The UUID of the Package in Blend's system. The static identifier that should be used to connect the package's identity across Blend and external integrations.
1538    pub id: String,
1539    #[serde(rename = "losId")]
1540    ///The UUID or GUID of the current resource in the LOS AFTER initial export to the LOS. For loans this may match the loan reference number depending on the LOS and if the customer has selected to use only GUIDs instead of UUIDs in their LOS settings. For all other resources, it is the static identifier of this resource in the LOS.
1541    pub los_id: Option<String>,
1542    #[serde(rename = "requestedBy")]
1543    pub requested_by: Option<String>,
1544    #[serde(rename = "type")]
1545    pub type_: Option<String>,
1546    #[serde(rename = "status")]
1547    ///ENUM describing the status of the package
1548    pub status: String,
1549    #[serde(rename = "displayStatus")]
1550    pub display_status: Option<String>,
1551    #[serde(rename = "sentDate")]
1552    ///UTC Timestamp of package sent date
1553    pub sent_date: Option<String>,
1554    #[serde(rename = "recipients")]
1555    pub recipients: Option<Vec<serde_json::Value>>,
1556    #[serde(rename = "documents")]
1557    ///Array of document IDs associated with this Package
1558    pub documents: Option<Vec<String>>,
1559    #[serde(rename = "name")]
1560    ///Optional name field for package when type is 'DOCUMENT_PACKAGE' or 'OTHER_DISCLOSURE,' forbidden otherwise
1561    pub name: Option<String>,
1562}
1563impl std::fmt::Display for PackageSchema {
1564    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1565        write!(f, "{}", serde_json::to_string(self).unwrap())
1566    }
1567}
1568#[derive(Debug, Serialize, Deserialize)]
1569pub struct TabSchema {
1570    #[serde(rename = "approveTabs")]
1571    pub approve_tabs: Option<Vec<serde_json::Value>>,
1572    #[serde(rename = "signHereTabs")]
1573    pub sign_here_tabs: Option<Vec<serde_json::Value>>,
1574    #[serde(rename = "listTabs")]
1575    pub list_tabs: Option<Vec<serde_json::Value>>,
1576    #[serde(rename = "dateSignedTabs")]
1577    pub date_signed_tabs: Option<Vec<serde_json::Value>>,
1578    #[serde(rename = "checkboxTabs")]
1579    pub checkbox_tabs: Option<Vec<serde_json::Value>>,
1580    #[serde(rename = "textTabs")]
1581    pub text_tabs: Option<Vec<serde_json::Value>>,
1582    #[serde(rename = "initialHereTabs")]
1583    pub initial_here_tabs: Option<Vec<serde_json::Value>>,
1584    #[serde(rename = "dateTabs")]
1585    pub date_tabs: Option<Vec<serde_json::Value>>,
1586    #[serde(rename = "noteTabs")]
1587    pub note_tabs: Option<Vec<serde_json::Value>>,
1588    #[serde(rename = "radioGroupTabs")]
1589    pub radio_group_tabs: Option<Vec<serde_json::Value>>,
1590}
1591impl std::fmt::Display for TabSchema {
1592    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1593        write!(f, "{}", serde_json::to_string(self).unwrap())
1594    }
1595}
1596#[derive(Debug, Serialize, Deserialize)]
1597pub struct LenderCreationRequestSchema {
1598    #[serde(rename = "name")]
1599    ///Lender Full Name
1600    pub name: String,
1601    #[serde(rename = "email")]
1602    ///Lender Email
1603    pub email: String,
1604    #[serde(rename = "permittedSolutionSubTypes")]
1605    ///Set of allowable solution types
1606    pub permitted_solution_sub_types: Vec<String>,
1607    #[serde(rename = "requireTwoFactorAuth")]
1608    ///MFA Required
1609    pub require_two_factor_auth: Option<bool>,
1610    #[serde(rename = "loginMethod")]
1611    ///Login Method
1612    pub login_method: String,
1613    #[serde(rename = "roleNames")]
1614    ///Roles for Lender
1615    pub role_names: Vec<String>,
1616    #[serde(rename = "phone")]
1617    pub phone: Option<serde_json::Value>,
1618    #[serde(rename = "nmlsId")]
1619    ///Nationwide Multistate Licensing System ID number
1620    pub nmls_id: Option<String>,
1621    #[serde(rename = "losUsername")]
1622    ///Lender's LOS Username
1623    pub los_username: Option<String>,
1624    #[serde(rename = "employeeId")]
1625    ///Lender's Employee Id
1626    pub employee_id: Option<String>,
1627    #[serde(rename = "branchId")]
1628    ///Lender's Branch Id
1629    pub branch_id: Option<String>,
1630    #[serde(rename = "licensedStates")]
1631    ///States Lender is licensed in
1632    pub licensed_states: Option<Vec<String>>,
1633}
1634impl std::fmt::Display for LenderCreationRequestSchema {
1635    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1636        write!(f, "{}", serde_json::to_string(self).unwrap())
1637    }
1638}
1639#[derive(Debug, Serialize, Deserialize)]
1640pub struct LenderUpdateRequestSchema {
1641    #[serde(rename = "id")]
1642    ///The UUID of the Lender User in Blend's system. The static identifier that should be used to connect the user's identity across Blend and external integrations.
1643    pub id: String,
1644    #[serde(rename = "email")]
1645    ///Lender Email. This can only be updated for SSO users. Note that you must submit a Blend Support request to enable the "Allow SSO lender email updates through API" configuration to enable this field.
1646    pub email: Option<String>,
1647    #[serde(rename = "name")]
1648    ///Lender Full Name
1649    pub name: Option<String>,
1650    #[serde(rename = "permittedSolutionSubTypes")]
1651    ///Allowable solution type
1652    pub permitted_solution_sub_types: Option<String>,
1653    #[serde(rename = "requireTwoFactorAuth")]
1654    ///MFA Required
1655    pub require_two_factor_auth: Option<bool>,
1656    #[serde(rename = "loginMethod")]
1657    ///Login Method
1658    pub login_method: Option<String>,
1659    #[serde(rename = "roleNames")]
1660    ///Roles for Lender
1661    pub role_names: Option<Vec<String>>,
1662    #[serde(rename = "phone")]
1663    pub phone: Option<serde_json::Value>,
1664    #[serde(rename = "nmlsId")]
1665    ///Nationwide Multistate Licensing System ID number
1666    pub nmls_id: Option<String>,
1667    #[serde(rename = "losUsername")]
1668    ///Lender's LOS Username
1669    pub los_username: Option<String>,
1670    #[serde(rename = "employeeId")]
1671    ///Lender's Employee Id
1672    pub employee_id: Option<String>,
1673    #[serde(rename = "branchId")]
1674    ///Lender's Branch Id
1675    pub branch_id: Option<String>,
1676    #[serde(rename = "creditInternalAccountIdentifiers")]
1677    pub credit_internal_account_identifiers: Option<CreditInternalAccountIdentifiers>,
1678    #[serde(rename = "licensedStates")]
1679    ///States Lender is licensed in
1680    pub licensed_states: Option<Vec<String>>,
1681}
1682impl std::fmt::Display for LenderUpdateRequestSchema {
1683    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1684        write!(f, "{}", serde_json::to_string(self).unwrap())
1685    }
1686}
1687#[derive(Debug, Serialize, Deserialize)]
1688pub struct LenderRecordSchema {
1689    #[serde(rename = "name")]
1690    ///Lender Full Name
1691    pub name: Option<String>,
1692    #[serde(rename = "firstName")]
1693    ///Lender First Name
1694    pub first_name: Option<String>,
1695    #[serde(rename = "lastName")]
1696    ///Lender Last Name
1697    pub last_name: Option<String>,
1698    #[serde(rename = "email")]
1699    ///Lender Email
1700    pub email: Option<String>,
1701    #[serde(rename = "permittedSolutionSubTypes")]
1702    ///Loan Subtypes Permitted
1703    pub permitted_solution_sub_types: Option<Vec<String>>,
1704    #[serde(rename = "requireTwoFactorAuth")]
1705    ///MFA Required
1706    pub require_two_factor_auth: bool,
1707    #[serde(rename = "loginMethod")]
1708    ///Login Method
1709    pub login_method: Option<String>,
1710    #[serde(rename = "roleNames")]
1711    ///Roles for Lender
1712    pub role_names: Option<Vec<String>>,
1713    #[serde(rename = "phone")]
1714    pub phone: Option<serde_json::Value>,
1715    #[serde(rename = "nmlsId")]
1716    ///Nationwide Multistate Licensing System ID number
1717    pub nmls_id: Option<String>,
1718    #[serde(rename = "losUsername")]
1719    ///Lender's LOS Username
1720    pub los_username: Option<String>,
1721    #[serde(rename = "employeeId")]
1722    ///Lender's Employee Id
1723    pub employee_id: Option<String>,
1724    #[serde(rename = "branchId")]
1725    ///Lender's Branch Id
1726    pub branch_id: Option<String>,
1727    #[serde(rename = "id")]
1728    ///The UUID of the Lender User in Blend's system. The static identifier that should be used to connect the user's identity across Blend and external integrations.
1729    pub id: String,
1730    #[serde(rename = "status")]
1731    ///ENUM describing the Lender User's status in Blend
1732    pub status: String,
1733    #[serde(rename = "creditInternalAccountIdentifiers")]
1734    ///List of all the active creditInternalAccountIdentifiers
1735    pub credit_internal_account_identifiers: Option<
1736        Vec<CreditInternalAccountIdentifiers>,
1737    >,
1738    #[serde(rename = "licensedStates")]
1739    ///States Lender is licensed in
1740    pub licensed_states: Option<Vec<String>>,
1741}
1742impl std::fmt::Display for LenderRecordSchema {
1743    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1744        write!(f, "{}", serde_json::to_string(self).unwrap())
1745    }
1746}
1747#[derive(Debug, Serialize, Deserialize)]
1748pub struct AccountApplicationSchema {
1749    #[serde(rename = "_id")]
1750    ///Internal application ID
1751    pub id: String,
1752    #[serde(rename = "referenceId")]
1753    ///Customer reference ID for application.
1754    pub reference_id: Option<String>,
1755    #[serde(rename = "productReferenceId")]
1756    ///Customer reference ID for product bundle.
1757    pub product_reference_id: Option<String>,
1758    #[serde(rename = "applicants")]
1759    ///List of applicants applying to open an account. Maximum of two.
1760    pub applicants: Vec<ApplicantSchema>,
1761    #[serde(rename = "accounts")]
1762    ///List of accounts requested to be opened.
1763    pub accounts: Vec<AccountSchema>,
1764    #[serde(rename = "funding")]
1765    ///List of funding sources and amounts to be transferred to new accounts.
1766    pub funding: Option<Vec<FundingSchema>>,
1767    #[serde(rename = "membershipQualification")]
1768    pub membership_qualification: serde_json::Value,
1769    #[serde(rename = "dynamicAccountOptions")]
1770    ///answers to configured account setup questions
1771    pub dynamic_account_options: Option<DynamicAccountOptionsAnswerSchema>,
1772    #[serde(rename = "debitCardIndicator")]
1773    ///Indicates whether applicant is requesting a debit card.
1774    pub debit_card_indicator: Option<bool>,
1775    #[serde(rename = "debitCardDesign")]
1776    ///Selected debit card design. Values configured per customer.
1777    pub debit_card_design: Option<String>,
1778    #[serde(rename = "promoCode")]
1779    ///Promo code for the application.
1780    pub promo_code: Option<String>,
1781    #[serde(rename = "overdraftPrivilegeIndicator")]
1782    ///Indicates whether applicant is requesting overdraft privileges
1783    pub overdraft_privilege_indicator: Option<bool>,
1784    #[serde(rename = "beneficiariesConsentIndicator")]
1785    ///Indicates whether applicant consented to adding beneficiaries
1786    pub beneficiaries_consent_indicator: Option<bool>,
1787    #[serde(rename = "approvalStatus")]
1788    ///Status of the application approval process.
1789    pub approval_status: Option<String>,
1790    #[serde(rename = "rejectedApplicants")]
1791    ///List of applicants removed from the current application via customer's decisioning policy.
1792    pub rejected_applicants: Option<Vec<RejectedApplicantSchema>>,
1793    #[serde(rename = "metadata")]
1794    ///additional info about the application
1795    pub metadata: Option<serde_json::Value>,
1796    #[serde(rename = "associatedApplicationId")]
1797    ///Application Id of Associated Application from Single App Flow
1798    pub associated_application_id: Option<String>,
1799    #[serde(rename = "beneficiaries")]
1800    ///Beneficiaries collected at application-level.
1801    pub beneficiaries: Option<Vec<BeneficiarySchema>>,
1802    #[serde(rename = "createdAt")]
1803    ///The timestamp for when the application is created
1804    pub created_at: Option<String>,
1805    #[serde(rename = "submittedAt")]
1806    ///The timestamp for when the application is submitted
1807    pub submitted_at: Option<String>,
1808}
1809impl std::fmt::Display for AccountApplicationSchema {
1810    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1811        write!(f, "{}", serde_json::to_string(self).unwrap())
1812    }
1813}
1814#[derive(Debug, Serialize, Deserialize)]
1815pub struct ApplicantSchema {
1816    #[serde(rename = "_id")]
1817    ///Internal applicant ID
1818    pub id: String,
1819    #[serde(rename = "type")]
1820    ///Applicant type, primary, secondary or minor
1821    pub type_: String,
1822    #[serde(rename = "email")]
1823    ///Applicant email address
1824    pub email: String,
1825    #[serde(rename = "name")]
1826    pub name: NameSchema,
1827    #[serde(rename = "dateOfBirth")]
1828    ///Applicant birth date, UNIX timestamp (milliseconds)
1829    pub date_of_birth: String,
1830    #[serde(rename = "socialSecurityNumber")]
1831    ///Applicant SSN
1832    pub social_security_number: String,
1833    #[serde(rename = "creditConsentIndicator")]
1834    ///Indicates whether applicant consented to credit policy for Identity Verification purposes.
1835    pub credit_consent_indicator: Option<bool>,
1836    #[serde(rename = "addresses")]
1837    ///List of applicant addresses, current or mailing
1838    pub addresses: Vec<AccountApplicationAddressSchema>,
1839    #[serde(rename = "phoneNumbers")]
1840    ///List of phone numbers associated with applicant
1841    pub phone_numbers: Vec<AccountApplicationPhoneNumberSchema>,
1842    #[serde(rename = "identityVerification")]
1843    ///Information regarding id verification for applicant
1844    pub identity_verification: Option<IdentityVerificationSchema>,
1845    #[serde(rename = "identityDocumentation")]
1846    ///ID Document
1847    pub identity_documentation: Option<IdentityDocumentationSchema>,
1848    #[serde(rename = "employmentStatus")]
1849    ///current listed employment status
1850    pub employment_status: Option<String>,
1851    #[serde(rename = "employers")]
1852    ///List of applicant's employers
1853    pub employers: Option<Vec<EmployerSchema>>,
1854    #[serde(rename = "employments")]
1855    ///List of applicant's employments
1856    pub employments: Option<Vec<EmploymentSchema>>,
1857    #[serde(rename = "coreBankingId")]
1858    ///Unique identifier for customer's core banking system.
1859    pub core_banking_id: Option<String>,
1860    #[serde(rename = "maritalStatus")]
1861    ///Applicant marital status
1862    pub marital_status: Option<String>,
1863    #[serde(rename = "citizenshipStatus")]
1864    ///Applicant citizenship status
1865    pub citizenship_status: Option<String>,
1866    #[serde(rename = "sex")]
1867    ///Applicant sex
1868    pub sex: Option<String>,
1869    #[serde(rename = "customFields")]
1870    ///Custom fields on GET responses for supported resources
1871    pub custom_fields: Option<CustomFields>,
1872    #[serde(rename = "customMetadata")]
1873    ///Custom metadata on GET responses for supported resources
1874    pub custom_metadata: Option<CustomMetadata>,
1875}
1876impl std::fmt::Display for ApplicantSchema {
1877    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1878        write!(f, "{}", serde_json::to_string(self).unwrap())
1879    }
1880}
1881#[derive(Debug, Serialize, Deserialize)]
1882pub struct RejectedApplicantSchema {
1883    #[serde(rename = "_id")]
1884    ///Internal applicant ID
1885    pub id: String,
1886    #[serde(rename = "type")]
1887    ///Applicant type
1888    pub type_: String,
1889    #[serde(rename = "email")]
1890    ///Applicant email address
1891    pub email: String,
1892    #[serde(rename = "name")]
1893    pub name: NameSchema,
1894    #[serde(rename = "dateOfBirth")]
1895    ///Applicant birth date, UNIX timestamp (milliseconds)
1896    pub date_of_birth: String,
1897    #[serde(rename = "socialSecurityNumber")]
1898    ///Applicant SSN
1899    pub social_security_number: String,
1900    #[serde(rename = "creditConsentIndicator")]
1901    ///Indicates whether applicant consented to credit policy for Identity Verification purposes.
1902    pub credit_consent_indicator: Option<bool>,
1903    #[serde(rename = "addresses")]
1904    ///List of applicant addresses, current or mailing
1905    pub addresses: Vec<AccountApplicationAddressSchema>,
1906    #[serde(rename = "phoneNumbers")]
1907    ///List of phone numbers associated with applicant
1908    pub phone_numbers: Vec<AccountApplicationPhoneNumberSchema>,
1909    #[serde(rename = "identityVerificationStatus")]
1910    ///Information regarding id verification for applicant
1911    pub identity_verification_status: Option<IdentityVerificationSchema>,
1912    #[serde(rename = "identityDocumentation")]
1913    ///ID Document
1914    pub identity_documentation: Option<IdentityDocumentationSchema>,
1915    #[serde(rename = "employers")]
1916    ///List of applicant's employers
1917    pub employers: Option<Vec<EmployerSchema>>,
1918    #[serde(rename = "employments")]
1919    ///List of applicant's employments
1920    pub employments: Option<Vec<EmploymentSchema>>,
1921    #[serde(rename = "coreBankingId")]
1922    ///Unique identifier for customer's core banking system.
1923    pub core_banking_id: Option<String>,
1924    #[serde(rename = "maritalStatus")]
1925    ///Applicant marital status
1926    pub marital_status: Option<String>,
1927    #[serde(rename = "citizenshipStatus")]
1928    ///Applicant citizenship status
1929    pub citizenship_status: Option<String>,
1930    #[serde(rename = "sex")]
1931    ///Applicant sex
1932    pub sex: Option<String>,
1933    #[serde(rename = "customFields")]
1934    ///Custom fields on GET responses for supported resources
1935    pub custom_fields: Option<CustomFields>,
1936    #[serde(rename = "customMetadata")]
1937    ///Custom metadata on GET responses for supported resources
1938    pub custom_metadata: Option<CustomMetadata>,
1939}
1940impl std::fmt::Display for RejectedApplicantSchema {
1941    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1942        write!(f, "{}", serde_json::to_string(self).unwrap())
1943    }
1944}
1945#[derive(Debug, Serialize, Deserialize)]
1946pub struct AoReviewerSchema {
1947    #[serde(rename = "_id")]
1948    ///Internal reviewer ID
1949    pub id: String,
1950    #[serde(rename = "fullName")]
1951    ///The full name of the reviewer
1952    pub full_name: Option<String>,
1953}
1954impl std::fmt::Display for AoReviewerSchema {
1955    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1956        write!(f, "{}", serde_json::to_string(self).unwrap())
1957    }
1958}
1959#[derive(Debug, Serialize, Deserialize)]
1960pub struct AccountApplicationAddressSchema {
1961    #[serde(rename = "_id")]
1962    ///Address ID
1963    pub id: String,
1964    #[serde(rename = "type")]
1965    ///Address type, current or mailing
1966    pub type_: String,
1967    #[serde(rename = "lineText")]
1968    ///First line of address
1969    pub line_text: String,
1970    #[serde(rename = "additionalLineText")]
1971    ///Second (optional) line of address
1972    pub additional_line_text: Option<String>,
1973    #[serde(rename = "cityName")]
1974    ///City name
1975    pub city_name: String,
1976    #[serde(rename = "countyName")]
1977    ///County name
1978    pub county_name: Option<String>,
1979    #[serde(rename = "stateCode")]
1980    ///2-digit state or territory code
1981    pub state_code: String,
1982    #[serde(rename = "zipCode")]
1983    ///5-digit zip code
1984    pub zip_code: String,
1985}
1986impl std::fmt::Display for AccountApplicationAddressSchema {
1987    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
1988        write!(f, "{}", serde_json::to_string(self).unwrap())
1989    }
1990}
1991#[derive(Debug, Serialize, Deserialize)]
1992pub struct AccountApplicationPhoneNumberSchema {
1993    #[serde(rename = "type")]
1994    ///Type of phone number
1995    pub type_: String,
1996    #[serde(rename = "value")]
1997    ///Phone number
1998    pub value: f64,
1999}
2000impl std::fmt::Display for AccountApplicationPhoneNumberSchema {
2001    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2002        write!(f, "{}", serde_json::to_string(self).unwrap())
2003    }
2004}
2005#[derive(Debug, Serialize, Deserialize)]
2006pub struct AuthorizedUserSchema {
2007    #[serde(rename = "_id")]
2008    ///Internal authorized user ID
2009    pub id: String,
2010    #[serde(rename = "email")]
2011    ///Authorized User email address
2012    pub email: String,
2013    #[serde(rename = "name")]
2014    pub name: NameSchema,
2015    #[serde(rename = "dateOfBirth")]
2016    ///Authorized User birth date, UNIX timestamp (milliseconds)
2017    pub date_of_birth: String,
2018    #[serde(rename = "socialSecurityNumber")]
2019    ///Authorized User SSN
2020    pub social_security_number: String,
2021    #[serde(rename = "addresses")]
2022    ///List of authorized User addresses, current or mailing
2023    pub addresses: Vec<AccountApplicationAddressSchema>,
2024    #[serde(rename = "phoneNumbers")]
2025    ///List of phone numbers associated with authorized User
2026    pub phone_numbers: Vec<AccountApplicationPhoneNumberSchema>,
2027    #[serde(rename = "identityVerification")]
2028    ///Information regarding id verification for applicant
2029    pub identity_verification: Option<IdentityVerificationSchema>,
2030}
2031impl std::fmt::Display for AuthorizedUserSchema {
2032    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2033        write!(f, "{}", serde_json::to_string(self).unwrap())
2034    }
2035}
2036#[derive(Debug, Serialize, Deserialize)]
2037pub struct BeneficiarySchema {
2038    #[serde(rename = "_id")]
2039    ///Internal beneficiary ID
2040    pub id: String,
2041    #[serde(rename = "type")]
2042    ///Beneficiary type, primary or contingent
2043    pub type_: String,
2044    #[serde(rename = "subType")]
2045    ///Beneficiary sub-type, INDIVIDUAL, TRUST, CHARITY, CHURCH, or FOUNDATION
2046    pub sub_type: Option<String>,
2047    #[serde(rename = "name")]
2048    pub name: Option<NameSchema>,
2049    #[serde(rename = "relation")]
2050    ///Beneficiary relationship
2051    pub relation: Option<String>,
2052    #[serde(rename = "allocation")]
2053    ///Percentage allocated to the given beneficiary
2054    pub allocation: Option<f64>,
2055    #[serde(rename = "address")]
2056    pub address: Option<AccountApplicationAddressSchema>,
2057    #[serde(rename = "email")]
2058    ///Beneficiary email address
2059    pub email: Option<String>,
2060    #[serde(rename = "dateOfBirth")]
2061    ///Beneficiary birth date, UNIX timestamp (milliseconds)
2062    pub date_of_birth: Option<String>,
2063    #[serde(rename = "socialSecurityNumber")]
2064    ///Beneficiary SSN
2065    pub social_security_number: Option<String>,
2066    #[serde(rename = "entityName")]
2067    ///Entity name of the given beneficiary (if the beneficiary is not a individual)
2068    pub entity_name: Option<String>,
2069    #[serde(rename = "taxpayerIdentificationNumber")]
2070    ///Taxpayer identification number of the entity (if the beneficiary is not a individual)
2071    pub taxpayer_identification_number: Option<String>,
2072    #[serde(rename = "phoneNumbers")]
2073    ///List of phone numbers associated with the given beneficiary
2074    pub phone_numbers: Option<Vec<AccountApplicationPhoneNumberSchema>>,
2075}
2076impl std::fmt::Display for BeneficiarySchema {
2077    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2078        write!(f, "{}", serde_json::to_string(self).unwrap())
2079    }
2080}
2081#[derive(Debug, Serialize, Deserialize)]
2082pub struct CreditInternalAccountIdentifiers {
2083    #[serde(rename = "pullType")]
2084    ///Pull type
2085    pub pull_type: String,
2086    #[serde(rename = "creditPullScenario")]
2087    ///Credit Pull Scenario
2088    pub credit_pull_scenario: String,
2089    #[serde(rename = "creditProvider")]
2090    ///Credit Provider
2091    pub credit_provider: String,
2092    #[serde(rename = "creditAccountIdentifier")]
2093    ///Credit Account Identifier
2094    pub credit_account_identifier: String,
2095}
2096impl std::fmt::Display for CreditInternalAccountIdentifiers {
2097    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2098        write!(f, "{}", serde_json::to_string(self).unwrap())
2099    }
2100}
2101#[derive(Debug, Serialize, Deserialize)]
2102pub struct IdentityDocumentationSchema {
2103    #[serde(rename = "type")]
2104    ///Type of ID document provided by applicant
2105    pub type_: String,
2106    #[serde(rename = "value")]
2107    ///ID document number
2108    pub value: String,
2109    #[serde(rename = "stateCode")]
2110    ///2-digit code of state that issued the ID document
2111    pub state_code: Option<String>,
2112    #[serde(rename = "country")]
2113    ///Country that issued the ID document
2114    pub country: Option<String>,
2115    #[serde(rename = "province")]
2116    ///Province that issued the ID document
2117    pub province: Option<String>,
2118    #[serde(rename = "tribe")]
2119    ///Tribe that issued the ID document
2120    pub tribe: Option<String>,
2121    #[serde(rename = "issueDate")]
2122    ///Date when ID document was issued, UNIX Timestamp (milliseconds)
2123    pub issue_date: f64,
2124    #[serde(rename = "expiryDate")]
2125    ///Date when ID document expires, UNIX Timestamp (milliseconds)
2126    pub expiry_date: f64,
2127}
2128impl std::fmt::Display for IdentityDocumentationSchema {
2129    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2130        write!(f, "{}", serde_json::to_string(self).unwrap())
2131    }
2132}
2133#[derive(Debug, Serialize, Deserialize)]
2134pub struct IdentityVerificationSchema {
2135    #[serde(rename = "_id")]
2136    ///Internal ID of identity verification process
2137    pub id: String,
2138    #[serde(rename = "statusType")]
2139    ///Result of identity verification process
2140    pub status_type: Option<String>,
2141    #[serde(rename = "provider")]
2142    ///Provider metadata object
2143    pub provider: Option<serde_json::Value>,
2144    #[serde(rename = "type")]
2145    ///Type of identity verification
2146    pub type_: Option<String>,
2147}
2148impl std::fmt::Display for IdentityVerificationSchema {
2149    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2150        write!(f, "{}", serde_json::to_string(self).unwrap())
2151    }
2152}
2153#[derive(Debug, Serialize, Deserialize)]
2154pub struct FundingAccountSchema {
2155    #[serde(rename = "_id")]
2156    ///Internal account ID
2157    pub id: String,
2158    #[serde(rename = "referenceId")]
2159    ///External ID or code to reference this account. e.g. share code.
2160    pub reference_id: Option<String>,
2161    #[serde(rename = "type")]
2162    ///Account type
2163    pub type_: Option<String>,
2164    #[serde(rename = "description")]
2165    ///Additional text describing account
2166    pub description: Option<String>,
2167    #[serde(rename = "accountNumber")]
2168    ///Account number
2169    pub account_number: Option<f64>,
2170    #[serde(rename = "routingNumber")]
2171    ///Routing number
2172    pub routing_number: Option<String>,
2173}
2174impl std::fmt::Display for FundingAccountSchema {
2175    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2176        write!(f, "{}", serde_json::to_string(self).unwrap())
2177    }
2178}
2179#[derive(Debug, Serialize, Deserialize)]
2180pub struct AccountSchema {
2181    #[serde(rename = "_id")]
2182    ///Internal account ID
2183    pub id: String,
2184    #[serde(rename = "referenceId")]
2185    ///External ID or code to reference this account. e.g. share code.
2186    pub reference_id: Option<String>,
2187    #[serde(rename = "type")]
2188    ///Account type
2189    pub type_: Option<String>,
2190    #[serde(rename = "description")]
2191    ///Additional text describing account
2192    pub description: Option<String>,
2193    #[serde(rename = "accountNumber")]
2194    ///Account number
2195    pub account_number: Option<f64>,
2196    #[serde(rename = "routingNumber")]
2197    ///Routing number
2198    pub routing_number: Option<String>,
2199    #[serde(rename = "isPrimary")]
2200    ///Indicator for primary account on application
2201    pub is_primary: Option<bool>,
2202    #[serde(rename = "authorizedUsers")]
2203    ///Authorized Users collected for the given account.
2204    pub authorized_users: Option<Vec<AuthorizedUserSchema>>,
2205    #[serde(rename = "beneficiaries")]
2206    ///Beneficiaries collected for the given account.
2207    pub beneficiaries: Option<Vec<BeneficiarySchema>>,
2208}
2209impl std::fmt::Display for AccountSchema {
2210    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2211        write!(f, "{}", serde_json::to_string(self).unwrap())
2212    }
2213}
2214#[derive(Debug, Serialize, Deserialize)]
2215pub struct DynamicAccountOptionsAnswerSchema {}
2216impl std::fmt::Display for DynamicAccountOptionsAnswerSchema {
2217    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2218        write!(f, "{}", serde_json::to_string(self).unwrap())
2219    }
2220}
2221#[derive(Debug, Serialize, Deserialize)]
2222pub struct MembershipQualificationAnswerSchema {}
2223impl std::fmt::Display for MembershipQualificationAnswerSchema {
2224    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2225        write!(f, "{}", serde_json::to_string(self).unwrap())
2226    }
2227}
2228#[derive(Debug, Serialize, Deserialize)]
2229pub struct FundingSchema {
2230    #[serde(rename = "sourceAccount")]
2231    pub source_account: FundingAccountSchema,
2232    #[serde(rename = "destinationAccount")]
2233    pub destination_account: FundingAccountSchema,
2234    #[serde(rename = "amount")]
2235    ///Amount being transferred
2236    pub amount: f64,
2237}
2238impl std::fmt::Display for FundingSchema {
2239    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2240        write!(f, "{}", serde_json::to_string(self).unwrap())
2241    }
2242}
2243#[derive(Debug, Serialize, Deserialize)]
2244pub struct EmployerSchema {
2245    #[serde(rename = "_id")]
2246    ///Internal employer ID
2247    pub id: String,
2248    #[serde(rename = "type")]
2249    ///Type of employment.
2250    pub type_: String,
2251    #[serde(rename = "referenceId")]
2252    ///External employer reference ID. e.g. select employee group number.
2253    pub reference_id: Option<String>,
2254    #[serde(rename = "name")]
2255    ///Employer name
2256    pub name: String,
2257    #[serde(rename = "address")]
2258    pub address: Option<AccountApplicationAddressSchema>,
2259}
2260impl std::fmt::Display for EmployerSchema {
2261    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2262        write!(f, "{}", serde_json::to_string(self).unwrap())
2263    }
2264}
2265#[derive(Debug, Serialize, Deserialize)]
2266pub struct EmploymentSchema {
2267    #[serde(rename = "type")]
2268    ///Type of employment.
2269    pub type_: String,
2270    #[serde(rename = "jobTitle")]
2271    ///Job Title
2272    pub job_title: Option<String>,
2273    #[serde(rename = "annualIncome")]
2274    ///Annual income range for given employment
2275    pub annual_income: Option<String>,
2276    #[serde(rename = "hireDate")]
2277    ///Date of hire for given employment
2278    pub hire_date: Option<String>,
2279}
2280impl std::fmt::Display for EmploymentSchema {
2281    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2282        write!(f, "{}", serde_json::to_string(self).unwrap())
2283    }
2284}
2285#[derive(Debug, Serialize, Deserialize)]
2286pub struct PatchApplicationSchema {
2287    #[serde(rename = "referenceId")]
2288    ///Optional reference ID for matching records with Blend's application object
2289    pub reference_id: Option<String>,
2290    #[serde(rename = "approvalStatus")]
2291    ///Decision regarding opening the account
2292    pub approval_status: Option<String>,
2293    #[serde(rename = "accounts")]
2294    ///List of accounts with their account/routing numbers
2295    pub accounts: Option<Vec<PatchAccountSchema>>,
2296    #[serde(rename = "applicants")]
2297    ///List of applicants with their member numbers
2298    pub applicants: Option<Vec<PatchApplicantSchema>>,
2299    #[serde(rename = "integrationEvent")]
2300    pub integration_event: Option<IntegrationEventSchema>,
2301}
2302impl std::fmt::Display for PatchApplicationSchema {
2303    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2304        write!(f, "{}", serde_json::to_string(self).unwrap())
2305    }
2306}
2307#[derive(Debug, Serialize, Deserialize)]
2308pub struct PatchAccountSchema {
2309    #[serde(rename = "_id")]
2310    ///Internal account ID
2311    pub id: String,
2312    #[serde(rename = "accountNumber")]
2313    ///Account number of booked account
2314    pub account_number: Option<String>,
2315    #[serde(rename = "routingNumber")]
2316    ///Routing number of booked account
2317    pub routing_number: Option<String>,
2318    #[serde(rename = "accessLimits")]
2319    ///access limits for the given account
2320    pub access_limits: Option<Vec<serde_json::Value>>,
2321}
2322impl std::fmt::Display for PatchAccountSchema {
2323    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2324        write!(f, "{}", serde_json::to_string(self).unwrap())
2325    }
2326}
2327#[derive(Debug, Serialize, Deserialize)]
2328pub struct PatchApplicantSchema {
2329    #[serde(rename = "_id")]
2330    ///Internal applicant ID
2331    pub id: String,
2332    #[serde(rename = "memberNumber")]
2333    ///Member number of applicant
2334    pub member_number: Option<String>,
2335    #[serde(rename = "coreBankingId")]
2336    ///Applicant identifier in customer's core banking system
2337    pub core_banking_id: Option<String>,
2338    #[serde(rename = "customFields")]
2339    ///Custom fields on PATCH or POST requests for supported resources
2340    pub custom_fields: Option<RequestCustomFields>,
2341    #[serde(rename = "customMetadata")]
2342    ///Custom metadata on PATCH or POST requests for supported resources
2343    pub custom_metadata: Option<RequestCustomMetadata>,
2344}
2345impl std::fmt::Display for PatchApplicantSchema {
2346    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2347        write!(f, "{}", serde_json::to_string(self).unwrap())
2348    }
2349}
2350#[derive(Debug, Serialize, Deserialize)]
2351pub struct IntegrationEventSchema {
2352    #[serde(rename = "type")]
2353    ///The type of integration event which is being completed
2354    pub type_: String,
2355    #[serde(rename = "status")]
2356    ///The final status of the integration event which is being completed
2357    pub status: String,
2358    #[serde(rename = "failureCode")]
2359    ///Corresponding reason for integration event failure
2360    pub failure_code: Option<String>,
2361    #[serde(rename = "failureMessage")]
2362    ///Message explaining why the integration event failed (It's only displayed when a failureCode is not provided)
2363    pub failure_message: Option<String>,
2364}
2365impl std::fmt::Display for IntegrationEventSchema {
2366    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2367        write!(f, "{}", serde_json::to_string(self).unwrap())
2368    }
2369}
2370#[derive(Debug, Serialize, Deserialize)]
2371pub struct PackageBorrowerMetadataSchema {
2372    #[serde(rename = "id")]
2373    ///The UUID of the Party in Blend's system. The static identifier that should be used to connect the party's identity across Blend and external integrations.
2374    pub id: String,
2375    #[serde(rename = "tabs")]
2376    pub tabs: Option<TabSchema>,
2377    #[serde(rename = "docDeliveryType")]
2378    pub doc_delivery_type: Option<String>,
2379}
2380impl std::fmt::Display for PackageBorrowerMetadataSchema {
2381    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2382        write!(f, "{}", serde_json::to_string(self).unwrap())
2383    }
2384}
2385#[derive(Debug, Serialize, Deserialize)]
2386pub struct PackageThirdPartyRecipientMetadataSchema {
2387    #[serde(rename = "id")]
2388    ///The UUID of the Party in Blend's system. The static identifier that should be used to connect the Party's identity across Blend and external integrations.
2389    pub id: String,
2390    #[serde(rename = "tabs")]
2391    pub tabs: Option<TabSchema>,
2392    #[serde(rename = "docDeliveryType")]
2393    pub doc_delivery_type: Option<String>,
2394}
2395impl std::fmt::Display for PackageThirdPartyRecipientMetadataSchema {
2396    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2397        write!(f, "{}", serde_json::to_string(self).unwrap())
2398    }
2399}
2400#[derive(Debug, Serialize, Deserialize)]
2401pub struct PackageLenderMetadataSchema {
2402    #[serde(rename = "tabs")]
2403    pub tabs: Option<TabSchema>,
2404    #[serde(rename = "docDeliveryType")]
2405    pub doc_delivery_type: Option<String>,
2406}
2407impl std::fmt::Display for PackageLenderMetadataSchema {
2408    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2409        write!(f, "{}", serde_json::to_string(self).unwrap())
2410    }
2411}
2412#[derive(Debug, Serialize, Deserialize)]
2413pub struct LosMilestoneErrorSchema {
2414    #[serde(rename = "applicationId")]
2415    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
2416    pub application_id: Option<String>,
2417    #[serde(rename = "code")]
2418    pub code: Option<f64>,
2419    #[serde(rename = "reason")]
2420    pub reason: Option<String>,
2421}
2422impl std::fmt::Display for LosMilestoneErrorSchema {
2423    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2424        write!(f, "{}", serde_json::to_string(self).unwrap())
2425    }
2426}
2427#[derive(Debug, Serialize, Deserialize)]
2428pub struct ExportStatusSchema {
2429    #[serde(rename = "applicationId")]
2430    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
2431    pub application_id: String,
2432    #[serde(rename = "status")]
2433    ///ENUM describing the status of this application's export to an external system
2434    pub status: String,
2435    #[serde(rename = "reason")]
2436    ///Further explanation for the assigned status
2437    pub reason: Option<String>,
2438    #[serde(rename = "lastUpdated")]
2439    ///UTC Timestamp of last update to status
2440    pub last_updated: Option<String>,
2441}
2442impl std::fmt::Display for ExportStatusSchema {
2443    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2444        write!(f, "{}", serde_json::to_string(self).unwrap())
2445    }
2446}
2447#[derive(Debug, Serialize, Deserialize)]
2448pub struct PostExportStatusSchema {
2449    #[serde(rename = "status")]
2450    ///ENUM describing the status of this application's export to an external system
2451    pub status: String,
2452    #[serde(rename = "reason")]
2453    ///Further explanation for the assigned status
2454    pub reason: Option<String>,
2455}
2456impl std::fmt::Display for PostExportStatusSchema {
2457    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2458        write!(f, "{}", serde_json::to_string(self).unwrap())
2459    }
2460}
2461#[derive(Debug, Serialize, Deserialize)]
2462pub struct NotAuthorizedErrorSchema {
2463    #[serde(rename = "error")]
2464    pub error: String,
2465    #[serde(rename = "display")]
2466    pub display: Option<String>,
2467    #[serde(rename = "trackingId")]
2468    pub tracking_id: Option<String>,
2469}
2470impl std::fmt::Display for NotAuthorizedErrorSchema {
2471    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2472        write!(f, "{}", serde_json::to_string(self).unwrap())
2473    }
2474}
2475#[derive(Debug, Serialize, Deserialize)]
2476pub struct InternalServerErrorSchema {
2477    #[serde(rename = "error")]
2478    pub error: String,
2479    #[serde(rename = "display")]
2480    pub display: Option<String>,
2481    #[serde(rename = "trackingId")]
2482    pub tracking_id: Option<String>,
2483}
2484impl std::fmt::Display for InternalServerErrorSchema {
2485    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2486        write!(f, "{}", serde_json::to_string(self).unwrap())
2487    }
2488}
2489#[derive(Debug, Serialize, Deserialize)]
2490pub struct BulkRequestErrorSchema {
2491    #[serde(rename = "id")]
2492    ///The UUID of the referenced resource in Blend's system. The static identifier that should be used to connect the resource's identity across Blend and external integrations.
2493    pub id: String,
2494    #[serde(rename = "code")]
2495    pub code: f64,
2496    #[serde(rename = "reason")]
2497    pub reason: String,
2498}
2499impl std::fmt::Display for BulkRequestErrorSchema {
2500    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2501        write!(f, "{}", serde_json::to_string(self).unwrap())
2502    }
2503}
2504#[derive(Debug, Serialize, Deserialize)]
2505pub struct ApplicationNotFoundErrorSchema {
2506    #[serde(rename = "error")]
2507    pub error: String,
2508    #[serde(rename = "display")]
2509    pub display: Option<String>,
2510    #[serde(rename = "trackingId")]
2511    pub tracking_id: Option<String>,
2512}
2513impl std::fmt::Display for ApplicationNotFoundErrorSchema {
2514    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2515        write!(f, "{}", serde_json::to_string(self).unwrap())
2516    }
2517}
2518#[derive(Debug, Serialize, Deserialize)]
2519pub struct ConflictErrorSchema(pub serde_json::Value);
2520#[derive(Debug, Serialize, Deserialize)]
2521pub struct InvalidRequestErrorSchema {
2522    #[serde(rename = "error")]
2523    pub error: String,
2524    #[serde(rename = "display")]
2525    pub display: Option<String>,
2526    #[serde(rename = "trackingId")]
2527    pub tracking_id: Option<String>,
2528}
2529impl std::fmt::Display for InvalidRequestErrorSchema {
2530    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2531        write!(f, "{}", serde_json::to_string(self).unwrap())
2532    }
2533}
2534#[derive(Debug, Serialize, Deserialize)]
2535pub struct InvalidUpdateErrorSchema {
2536    #[serde(rename = "error")]
2537    pub error: String,
2538    #[serde(rename = "display")]
2539    pub display: Option<String>,
2540    #[serde(rename = "trackingId")]
2541    pub tracking_id: Option<String>,
2542}
2543impl std::fmt::Display for InvalidUpdateErrorSchema {
2544    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2545        write!(f, "{}", serde_json::to_string(self).unwrap())
2546    }
2547}
2548#[derive(Debug, Serialize, Deserialize)]
2549pub struct AuthenticationRequiredErrorSchema {
2550    #[serde(rename = "error")]
2551    pub error: String,
2552    #[serde(rename = "display")]
2553    pub display: Option<String>,
2554    #[serde(rename = "trackingId")]
2555    pub tracking_id: Option<String>,
2556}
2557impl std::fmt::Display for AuthenticationRequiredErrorSchema {
2558    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2559        write!(f, "{}", serde_json::to_string(self).unwrap())
2560    }
2561}
2562#[derive(Debug, Serialize, Deserialize)]
2563pub struct RateLimitedErrorSchema {
2564    #[serde(rename = "error")]
2565    pub error: String,
2566    #[serde(rename = "display")]
2567    pub display: Option<String>,
2568    #[serde(rename = "trackingId")]
2569    pub tracking_id: Option<String>,
2570}
2571impl std::fmt::Display for RateLimitedErrorSchema {
2572    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2573        write!(f, "{}", serde_json::to_string(self).unwrap())
2574    }
2575}
2576#[derive(Debug, Serialize, Deserialize)]
2577pub struct ReportingLoanSchema {
2578    #[serde(rename = "loanId")]
2579    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
2580    pub loan_id: String,
2581    #[serde(rename = "losPrimaryKey")]
2582    ///The unique identifier of the loan in a lender's Loan Origination System, or LOS (e.g. Empower, Encompass, etc.). This value should not change over time and should be used to connect the loan's identity between Blend and the LOS.
2583    pub los_primary_key: Option<String>,
2584    #[serde(rename = "crmPrimaryKey")]
2585    ///The unique identifier of the application in a lender's Customer Relationship Management (CRM) system (e.g. Salesforce, Velocify, etc.). This value should not change over time and should be used to connect the application's identity between Blend and the CRM.
2586    pub crm_primary_key: Option<String>,
2587    #[serde(rename = "loanNumber")]
2588    ///A mutable identifier of the application. Not safe to use to connect the application's identity across Blend and external systems because it can and (for most implementations) will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
2589    pub loan_number: Option<String>,
2590    #[serde(rename = "creatorUserId")]
2591    ///The user ID for the user that originated the loan.
2592    pub creator_user_id: Option<String>,
2593    #[serde(rename = "primaryAssigneeUserId")]
2594    ///The user id of the primary assignee LO on the loan.
2595    pub primary_assignee_user_id: Option<String>,
2596    #[serde(rename = "primaryAssigneeName")]
2597    ///The full name of the primary assignee
2598    pub primary_assignee_name: Option<String>,
2599    #[serde(rename = "primaryAssigneeEmail")]
2600    ///The email address of the primary assignee
2601    pub primary_assignee_email: Option<String>,
2602    #[serde(rename = "allCurrentAssignees")]
2603    ///A JSON array containing the user ID, name, and email of all current assignees on the loan
2604    pub all_current_assignees: Option<String>,
2605    #[serde(rename = "loanType")]
2606    ///The subtype of the loan application.
2607    pub loan_type: Option<String>,
2608    #[serde(rename = "loanPurposeType")]
2609    ///The purpose of the loan application.
2610    pub loan_purpose_type: Option<String>,
2611    #[serde(rename = "appSourceName")]
2612    ///Canonical name of where this application came from, such as the name of the LOS or CRM
2613    pub app_source_name: Option<String>,
2614    #[serde(rename = "appLeadSource")]
2615    ///Specifies how an app was created.
2616    pub app_lead_source: Option<String>,
2617    #[serde(rename = "appProgram")]
2618    ///The loan program of the application, possible values include - STATE_AGENCY, VA, FHA, CONVENTIONAL, LOCAL_AGENCY, USARURAL_DEVELOPMENT, PUBLIC_AND_INDIAN_HOUSING, OTHER
2619    pub app_program: Option<String>,
2620    #[serde(rename = "appMarketingTag")]
2621    ///The tag corresponding to a marketing campaign. This identifier can be used to gauge which links are most effective within certain campaigns.
2622    pub app_marketing_tag: Option<String>,
2623    #[serde(rename = "assetState")]
2624    ///The registered address state on the asset
2625    pub asset_state: Option<String>,
2626    #[serde(rename = "assetPurchasePrice")]
2627    ///The purchase price of the asset
2628    pub asset_purchase_price: Option<f64>,
2629    #[serde(rename = "loanApplicationStatus")]
2630    ///The current status of the loan application
2631    pub loan_application_status: Option<String>,
2632    #[serde(rename = "los_milestone")]
2633    ///An optional enumerated field sent by lenders who have shared this data via the home-lending/applications/los-milestones endpoint. Possible values include SUBMITTED. UNDERWRITING, CONDITIONAL_APPROVAL, APPROVED, CLOSING, CLOSED
2634    pub los_milestone: Option<String>,
2635    #[serde(rename = "losMilestoneLastUpdatedDatetime")]
2636    ///The UTC timestamp for when an LOS milestone was last posted to Blend via the home-lending/applications/los-milestones
2637    pub los_milestone_last_updated_datetime: Option<String>,
2638    #[serde(rename = "firstCreditPulledDatetime")]
2639    ///The first UTC timestamp of when the borrower’s credit was pulled through Blend
2640    pub first_credit_pulled_datetime: Option<String>,
2641    #[serde(rename = "primaryBorrowerSsnFlag")]
2642    ///A flag denoting if the borrower has provided their SSN
2643    pub primary_borrower_ssn_flag: Option<bool>,
2644    #[serde(rename = "primaryBorrowerCreditConsentDatetime")]
2645    ///The date that the borrower provided credit consent
2646    pub primary_borrower_credit_consent_datetime: Option<String>,
2647    #[serde(rename = "primaryBorrowerEconsentFlag")]
2648    ///A flag denoting that the borrower has provided e-consent
2649    pub primary_borrower_econsent_flag: Option<bool>,
2650    #[serde(rename = "coborrowerSsnFlag")]
2651    ///A flag denoting if the coborrower has provided their SSN
2652    pub coborrower_ssn_flag: Option<bool>,
2653    #[serde(rename = "coborrowerCreditConsentDatetime")]
2654    ///The date that the borrower provided credit consent
2655    pub coborrower_credit_consent_datetime: Option<String>,
2656    #[serde(rename = "coborrowerEconsentFlag")]
2657    ///A flag denoting that the co-borrower has provided e-consent
2658    pub coborrower_econsent_flag: Option<bool>,
2659    #[serde(rename = "followUpOnlyFlag")]
2660    ///A flag that indicates that the application was a follow-up only loan - the lender used Blend to issue follow ups to the borrower
2661    pub follow_up_only_flag: Option<bool>,
2662    #[serde(rename = "connectivityFlag")]
2663    ///A flag that indicates that the borrower successfully generated an asset statement
2664    pub connectivity_flag: Option<bool>,
2665    #[serde(rename = "blendIncomeSuccessFlag")]
2666    ///A flag that indicates whether the loan had at least one Blend Income Report generated (i.e. a borrower's income was successfully verified)
2667    pub blend_income_success_flag: Option<bool>,
2668    #[serde(rename = "twnSuccessFlag")]
2669    ///A flag that indicates that a successful match was found on the borrower using The Work Number
2670    pub twn_success_flag: Option<bool>,
2671    #[serde(rename = "hasRealtorFlag")]
2672    ///A flag that indicates the borrower selected they are working with a realtor on their application
2673    pub has_realtor_flag: Option<bool>,
2674    #[serde(rename = "unassignedOnSubmitFlag")]
2675    ///For Mortgage/Heloc/Heloan only - A flag that indicates the loan was unassigned upon submit. This field will not change if a loan is assigned. 'TRUE' = the loan was unassigned at submission; 'FALSE' = the loan was assigned at submission; NULL = the loan may not have been submitted yet, or is is a non home lending product
2676    pub unassigned_on_submit_flag: Option<bool>,
2677    #[serde(rename = "signupUrl")]
2678    ///For Mortgage/Heloc/Heloan only - The sign-up URL the borrower used to apply. Can be used with the unassignedOnsubmitFlag field to diagnose faulty referral links
2679    pub signup_url: Option<String>,
2680    #[serde(rename = "preApprovalLetterDatetime")]
2681    ///The timestamp for when a Preapproval Letter was generated in Blend (UTC)
2682    pub pre_approval_letter_datetime: Option<String>,
2683    #[serde(rename = "createdDatetime")]
2684    ///The creation time of the loan (in UTC)
2685    pub created_datetime: Option<String>,
2686    #[serde(rename = "daysSinceLastTouch")]
2687    ///Number of days since the loan was last touched (from when the report was generated)
2688    pub days_since_last_touch: Option<f64>,
2689    #[serde(rename = "borrowerStartedDatetime")]
2690    ///The timestamp when the borrower(s) started the loan application
2691    pub borrower_started_datetime: Option<String>,
2692    #[serde(rename = "borrowerSubmittedDatetime")]
2693    ///The timestamp when borrower submitted the application
2694    pub borrower_submitted_datetime: Option<String>,
2695    #[serde(rename = "takeOverDatetime")]
2696    ///The timestamp when the loan was first taken over by the LO (in UTC)
2697    pub take_over_datetime: Option<String>,
2698    #[serde(rename = "estExportedDatetime")]
2699    ///The timestamp when the application was exported. Field is appended with estimated, as this field is not meant to be used for compliance and reconciliation purposes
2700    pub est_exported_datetime: Option<String>,
2701    #[serde(rename = "estLastUpdatedDatetime")]
2702    ///The timestamp the loan was last updated by the system. Can be used to filter on to find loans that have been updated. Field is appended with estimated, as this field is not meant to be used for compliance and reconciliation purposes and specific actions may not be considered as a "last updated"
2703    pub est_last_updated_datetime: Option<String>,
2704    #[serde(rename = "estLastTouchDatetime")]
2705    ///The timestamp the loan was last touched (by a borrower or lender user). Field is appended with estimated, as this field is not meant to be used for compliance and reconciliation purposes and specific actions may not be considered as a "last touched"
2706    pub est_last_touch_datetime: Option<String>,
2707    #[serde(rename = "lastTouchedByUserId")]
2708    ///The ID of the user to last touch the loan (can be borrower or lender user)
2709    pub last_touched_by_user_id: Option<String>,
2710    #[serde(rename = "estCompletedDatetime")]
2711    ///The application completion time of the loan (in UTC)
2712    pub est_completed_datetime: Option<String>,
2713    #[serde(rename = "estArchivedDatetime")]
2714    ///The timestamp when the application was archived. Field is appended with estimated, as this field is not meant to be used for compliance and reconciliation purposes
2715    pub est_archived_datetime: Option<String>,
2716    #[serde(rename = "estDeletedDatetime")]
2717    ///The timestamp when the application was deleted. Field is appended with estimated, as this field is not meant to be used for compliance and reconciliation purposes
2718    pub est_deleted_datetime: Option<String>,
2719    #[serde(rename = "estPurgedDatetime")]
2720    ///The timestamp when the application was purged. Field is appended with estimated, as this field is not meant to be used for compliance and reconciliation purposes ("estimated" in this case does not predict when a loan will be purged. This field is only for loans that have already been purged)
2721    pub est_purged_datetime: Option<String>,
2722    #[serde(rename = "appStartToSubmitMinutes")]
2723    ///For a submitted loan, the time between app start and app submit
2724    pub app_start_to_submit_minutes: Option<f64>,
2725    #[serde(rename = "asOfDate")]
2726    ///The date for when the report was generated
2727    pub as_of_date: Option<String>,
2728}
2729impl std::fmt::Display for ReportingLoanSchema {
2730    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2731        write!(f, "{}", serde_json::to_string(self).unwrap())
2732    }
2733}
2734#[derive(Debug, Serialize, Deserialize)]
2735pub struct ReportingDocumentSchema {
2736    #[serde(rename = "documentId")]
2737    ///The unique ID for the document upload
2738    pub document_id: String,
2739    #[serde(rename = "loanId")]
2740    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
2741    pub loan_id: String,
2742    #[serde(rename = "uploadedByUserId")]
2743    ///The User ID for the user who uploaded the document (can be 'system', or either a borrower or lender user ID)
2744    pub uploaded_by_user_id: Option<String>,
2745    #[serde(rename = "uploadedByUserType")]
2746    ///The type of user that uploaded the document. Eg "borrower", "lender", "system", "internal_api", "external_api". If the source is system or from the API, those are generally documents uploaded by Blend, or they can also be from internal/third party integrations that use the APIs to upload documents
2747    pub uploaded_by_user_type: Option<String>,
2748    #[serde(rename = "type")]
2749    ///Blend document type
2750    pub type_: String,
2751    #[serde(rename = "source")]
2752    ///The source of where the document came from. Can be 'connectivity' for documents pulled through Blend's connectivity, or 'user' for all other documents
2753    pub source: String,
2754    #[serde(rename = "createdDatetime")]
2755    ///The UTC timestamp for when the document was uploaded
2756    pub created_datetime: String,
2757    #[serde(rename = "loanType")]
2758    ///The specific product (Mortgage, HELOAN, HELOC, Auto, etc)
2759    pub loan_type: Option<String>,
2760    #[serde(rename = "asOfDate")]
2761    ///The date for when the report was generated
2762    pub as_of_date: String,
2763}
2764impl std::fmt::Display for ReportingDocumentSchema {
2765    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2766        write!(f, "{}", serde_json::to_string(self).unwrap())
2767    }
2768}
2769#[derive(Debug, Serialize, Deserialize)]
2770pub struct ReportingBorrowerSchema {
2771    #[serde(rename = "userId")]
2772    ///User id
2773    pub user_id: String,
2774    #[serde(rename = "loanId")]
2775    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
2776    pub loan_id: String,
2777    #[serde(rename = "loanNumber")]
2778    ///A mutable identifier of the application. Not safe to use to connect the application's identity across Blend and external systems because it can and (for most implementations) will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
2779    pub loan_number: Option<String>,
2780    #[serde(rename = "partyId")]
2781    ///The UUID of the party in Blend's system. Equivalent to borrowerId
2782    pub party_id: String,
2783    #[serde(rename = "role")]
2784    ///The role of the user
2785    pub role: Option<String>,
2786    #[serde(rename = "loginMethod")]
2787    ///The method the user used to login
2788    pub login_method: Option<String>,
2789    #[serde(rename = "activationDatetime")]
2790    ///The UTC timestamp of when the borrower activated their Blend user
2791    pub activation_datetime: Option<String>,
2792    #[serde(rename = "invitedDatetime")]
2793    ///The UTC timestamp of when the borrower was invited to Blend
2794    pub invited_datetime: Option<String>,
2795    #[serde(rename = "creditPulledDatetime")]
2796    ///The latest UTC timestamp of when the borrower’s credit was pulled through Blend
2797    pub credit_pulled_datetime: Option<String>,
2798    #[serde(rename = "assetsPulledDatetime")]
2799    ///The latest UTC timestamp of when the borrower connected their assets through Blend
2800    pub assets_pulled_datetime: Option<String>,
2801    #[serde(rename = "incomeVerifiedDatetime")]
2802    ///The most recent timestamp (in UTC) that a Blend Income Report was generated for that borrower (i.e. the borrower's income was successfully verified)
2803    pub income_verified_datetime: Option<String>,
2804    #[serde(rename = "workflowMilestone")]
2805    ///The latest completed borrower milestone within Blend
2806    pub workflow_milestone: Option<String>,
2807    #[serde(rename = "userAgent")]
2808    ///The most recent borrower user agent. Can be used to derive the last device type used.
2809    pub user_agent: Option<String>,
2810    #[serde(rename = "lastUpdatedDatetime")]
2811    ///The timestamp (in UTC) of the latest action occurring for the borrower out of fields available in this report. Please note, this timestamp only updates if any of the above fields are updated - it does not apply to actions outside this report, so this field does not necessarily correspond to the last time the borrower took action on the loan. If all other timestamp fields are null, this timestamp defaults to the time the borrower user was created (and the borrower may not yet have been invited by the loan officer)
2812    pub last_updated_datetime: Option<String>,
2813}
2814impl std::fmt::Display for ReportingBorrowerSchema {
2815    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2816        write!(f, "{}", serde_json::to_string(self).unwrap())
2817    }
2818}
2819#[derive(Debug, Serialize, Deserialize)]
2820pub struct ReportingLenderSchema {
2821    #[serde(rename = "userId")]
2822    ///Unique User ID associated with the Lender User
2823    pub user_id: String,
2824    #[serde(rename = "nmlsId")]
2825    ///The NMLS ID of the lender
2826    pub nmls_id: Option<String>,
2827    #[serde(rename = "branchId")]
2828    ///The Branch ID entered into the lender user profile (optional field maintained manually by the client)
2829    pub branch_id: Option<String>,
2830    #[serde(rename = "employeeId")]
2831    ///The lender user's employee ID (optional field maintained manually by the client)
2832    pub employee_id: Option<String>,
2833    #[serde(rename = "fullName")]
2834    ///The full name of the lender
2835    pub full_name: String,
2836    #[serde(rename = "email")]
2837    ///The email address of the lender
2838    pub email: String,
2839    #[serde(rename = "userRoles")]
2840    ///A comma separated list of user roles attributed to the lender
2841    pub user_roles: Option<String>,
2842    #[serde(rename = "losUsername")]
2843    ///The lender user's LOS Username in Blend
2844    pub los_username: Option<String>,
2845    #[serde(rename = "activationDatetime")]
2846    ///The UTC timestamp for when the lender user accepted Terms of Service
2847    pub activation_datetime: Option<String>,
2848    #[serde(rename = "invitedDatetime")]
2849    ///The invitation time of the lender (in UTC)
2850    pub invited_datetime: Option<String>,
2851    #[serde(rename = "lastLoginDatetime")]
2852    ///The UTC timestamp for the last time the account was opened/used
2853    pub last_login_datetime: Option<String>,
2854    #[serde(rename = "totalCreatedApplications")]
2855    ///The total number of created application applications assigned to the lender user in the last 90 days
2856    pub total_created_applications: Option<f64>,
2857    #[serde(rename = "borrowerSubmits")]
2858    ///The total number of loans submitted by the borrower with this lender as the primary assignee
2859    pub borrower_submits: Option<f64>,
2860    #[serde(rename = "percentLoansSubmitted")]
2861    ///The percent of loans submitted out of the total number of created applications assigned to the lender user
2862    pub percent_loans_submitted: Option<f64>,
2863    #[serde(rename = "percentSubmitsWithGas")]
2864    ///The percent of submitted loans with a Generated Asset Statement on the previous date
2865    pub percent_submits_with_gas: Option<f64>,
2866    #[serde(rename = "lastBorrowerSubmitDatetime")]
2867    ///The UTC timestamp for the last time the account was opened/used
2868    pub last_borrower_submit_datetime: Option<String>,
2869    #[serde(rename = "averageNpsScore")]
2870    ///The average NPS score of all submitted applications assigned to the lender user
2871    pub average_nps_score: Option<f64>,
2872    #[serde(rename = "calculatedNpsScore")]
2873    ///The calculated NPS score of all submitted applications assigned to the lender user
2874    pub calculated_nps_score: Option<f64>,
2875    #[serde(rename = "percentLoansUtilizingFollowups")]
2876    ///The percent of the lender user's loans utilizing follow-ups within the date filters provided
2877    pub percent_loans_utilizing_followups: Option<f64>,
2878    #[serde(rename = "followupsManuallyRequested")]
2879    ///The number of manually requested follow-ups by the lender user within the date filters provided
2880    pub followups_manually_requested: Option<f64>,
2881    #[serde(rename = "followupsBorrowerCompleted")]
2882    ///The number of follow-ups requested by this lender within the date filters provided that were completed by borrowers
2883    pub followups_borrower_completed: Option<f64>,
2884    #[serde(rename = "followupsPending")]
2885    ///The number of follow-ups requested within the date filters that have not been completed by the borrower
2886    pub followups_pending: Option<f64>,
2887    #[serde(rename = "followupsAccepted")]
2888    ///The number of follow-ups requested within the date filters that were accepted by this lender
2889    pub followups_accepted: Option<f64>,
2890    #[serde(rename = "followupsRejected")]
2891    ///The number of follow-ups requested within the date filters that were rejected by this lender
2892    pub followups_rejected: Option<f64>,
2893    #[serde(rename = "asOfDate")]
2894    ///The date that the report was generated
2895    pub as_of_date: Option<String>,
2896}
2897impl std::fmt::Display for ReportingLenderSchema {
2898    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2899        write!(f, "{}", serde_json::to_string(self).unwrap())
2900    }
2901}
2902#[derive(Debug, Serialize, Deserialize)]
2903pub struct ReportingActivitySchema {
2904    #[serde(rename = "loanId")]
2905    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
2906    pub loan_id: String,
2907    #[serde(rename = "loanNumber")]
2908    ///A mutable identifier of the application. Not safe to use to connect the application's identity across Blend and external systems because it can and (for most implementations) will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
2909    pub loan_number: Option<String>,
2910    #[serde(rename = "activityId")]
2911    ///Activity id
2912    pub activity_id: String,
2913    #[serde(rename = "userId")]
2914    ///User id
2915    pub user_id: String,
2916    #[serde(rename = "type")]
2917    ///Activity type
2918    pub type_: Option<String>,
2919    #[serde(rename = "startedDatetime")]
2920    ///Start time of the activity (in UTC)
2921    pub started_datetime: Option<String>,
2922    #[serde(rename = "completedDatetime")]
2923    ///Completion time of the activity (in UTC)
2924    pub completed_datetime: Option<String>,
2925}
2926impl std::fmt::Display for ReportingActivitySchema {
2927    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2928        write!(f, "{}", serde_json::to_string(self).unwrap())
2929    }
2930}
2931#[derive(Debug, Serialize, Deserialize)]
2932pub struct ReportingNpsSchema {
2933    #[serde(rename = "loanId")]
2934    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
2935    pub loan_id: String,
2936    #[serde(rename = "loanNumber")]
2937    ///A mutable identifier of the application. Not safe to use to connect the application's identity across Blend and external systems because it can and (for most implementations) will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
2938    pub loan_number: Option<String>,
2939    #[serde(rename = "datetime")]
2940    ///submit time of NPS
2941    pub datetime: Option<String>,
2942    #[serde(rename = "comment")]
2943    ///NPS Comment submitted by borrower
2944    pub comment: Option<String>,
2945    #[serde(rename = "score")]
2946    ///NPS Score (0-10)
2947    pub score: Option<i64>,
2948}
2949impl std::fmt::Display for ReportingNpsSchema {
2950    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
2951        write!(f, "{}", serde_json::to_string(self).unwrap())
2952    }
2953}
2954#[derive(Debug, Serialize, Deserialize)]
2955pub struct ReportingDataVerificationUsageSchema {
2956    #[serde(rename = "week")]
2957    ///The start date of the week
2958    pub week: String,
2959    #[serde(rename = "numberLoansSubmitted")]
2960    ///The total number of borrower submitted loans for the week
2961    pub number_loans_submitted: f64,
2962    #[serde(rename = "numberGasGenerated")]
2963    ///The total number of Generated Asset Statements (GAS) on submitted loans for that week. This only includes instances where a GAS was created from source data in a borrower’s bank account that is eligible for GSE rep and warrant programs (D1C/AIM). GAS does not include successful asset connectivity in cases that Blend is unable to access high enough quality source data for the GSE programs, but will pull a PDF instead and the borrower will not be prompted to upload bank statements (Assets Statement Fallback)
2964    pub number_gas_generated: f64,
2965    #[serde(rename = "numberLoansWithGas")]
2966    ///The total number of borrower submitted loans that week that have at least one Generated Asset Statement - this number does not include Assets Statement (PDF) Fallbacks; see description above
2967    pub number_loans_with_gas: f64,
2968    #[serde(rename = "percentSubmitsWithGas")]
2969    ///The percent of borrower submitted loans that week that have at least one Generated Asset Statement - this percentage does not include Assets Statement (PDF) Fallbacks; see description above
2970    pub percent_submits_with_gas: f64,
2971    #[serde(rename = "numberAssetsStatementFallback")]
2972    ///The total number of Assets Statement (PDF) Fallbacks created on submitted loans for that week. An Assets Statement Fallback is generated in cases where Blend is unable to access high enough quality source data for the GSE programs to generate a GAS, but will pull a PDF instead and the borrower will not be prompted to upload bank statements; this number does not include Generated Asset Statements (GAS) that are eligible for GSE rep and warrant programs (D1C/AIM)
2973    pub number_assets_statement_fallback: Option<f64>,
2974    #[serde(rename = "numberLoansWithAssetsStatementFallback")]
2975    ///The total number of borrower submitted loans that week that have at least one Asset Statement (PDF) Fallback - this number does not include Generated Asset Statements; see description above
2976    pub number_loans_with_assets_statement_fallback: Option<f64>,
2977    #[serde(rename = "percentSubmitsWithAssetsStatementFallback")]
2978    ///The percent of borrower submitted loans that week that have at least one Asset Statement (PDF) Fallback - this number does not include Generated Asset Statements; see description above
2979    pub percent_submits_with_assets_statement_fallback: Option<f64>,
2980    #[serde(rename = "numberAssetVerification")]
2981    ///The total number of Asset Verifications for borrower submitted loans that week, including either Generated Asset Statements (GAS) or Asset Statement Fallbacks (PDF Fallbacks); see descriptions above for details
2982    pub number_asset_verification: Option<f64>,
2983    #[serde(rename = "numberLoansWithAssetVerification")]
2984    ///The total number of borrower submitted loans that have at least one Asset Verification, including either Generated Asset Statements (GAS) or Asset Statement Fallbacks (PDF Fallbacks); see descriptions above for details
2985    pub number_loans_with_asset_verification: Option<f64>,
2986    #[serde(rename = "percentSubmitsWithAssetVerification")]
2987    ///The percent of borrower submitted loans that have at least one Asset Verification, including either Generated Asset Statements (GAS) or Asset Statement Fallbacks (PDF Fallbacks); see descriptions above for details
2988    pub percent_submits_with_asset_verification: Option<f64>,
2989    #[serde(rename = "numberBlendIncomeVerifications")]
2990    ///The total number of Blend Income Reports generated on borrower submitted loans in that week
2991    pub number_blend_income_verifications: Option<f64>,
2992    #[serde(rename = "numberLoansWithBlendIncomeVerification")]
2993    ///The total number of borrower submitted loans for that week with at least one Blend Income Verification
2994    pub number_loans_with_blend_income_verification: Option<f64>,
2995    #[serde(rename = "percentSubmitsWithBlendIncomeVerification")]
2996    ///The percent of borrower submitted loans for that week with at least one Blend Income Verification
2997    pub percent_submits_with_blend_income_verification: Option<f64>,
2998    #[serde(rename = "numberTwnInstantAttempt")]
2999    ///The total number of TWN instant attempts for that week
3000    pub number_twn_instant_attempt: f64,
3001    #[serde(rename = "numberTwnInstantSuccess")]
3002    ///The total number of TWN instant successes for that week
3003    pub number_twn_instant_success: f64,
3004    #[serde(rename = "asOfDate")]
3005    ///The effective date of the report
3006    pub as_of_date: String,
3007    #[serde(rename = "deployment")]
3008    ///The tenant making the API call
3009    pub deployment: Option<String>,
3010}
3011impl std::fmt::Display for ReportingDataVerificationUsageSchema {
3012    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3013        write!(f, "{}", serde_json::to_string(self).unwrap())
3014    }
3015}
3016#[derive(Debug, Serialize, Deserialize)]
3017pub struct ReportingFollowupsSchema {
3018    #[serde(rename = "followUpId")]
3019    ///The UUID of the followup in Blend's system. The static identifier that should be used to access followups across Blend and external integrations.
3020    pub follow_up_id: String,
3021    #[serde(rename = "loanId")]
3022    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
3023    pub loan_id: String,
3024    #[serde(rename = "loanNumber")]
3025    ///A mutable identifier of the application. Not safe to use to connect the application's identity across Blend and external systems because it can and (for most implementations) will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
3026    pub loan_number: Option<String>,
3027    #[serde(rename = "loanType")]
3028    ///The specific product (Mortgage, HELOAN, HELOC, Auto, etc)
3029    pub loan_type: Option<String>,
3030    #[serde(rename = "requestType")]
3031    ///The type of request that created the followup. Can be AUTOMATED, MANUAL, or SUGGESTED
3032    pub request_type: Option<String>,
3033    #[serde(rename = "followUpType")]
3034    ///The followup requested
3035    pub follow_up_type: Option<String>,
3036    #[serde(rename = "followUpText")]
3037    ///Optional text containing additional details about the follow-up. Can be set by Blend, or custom text
3038    pub follow_up_text: Option<String>,
3039    #[serde(rename = "followUpCreatedDatetime")]
3040    ///The timestamp when the followup was created in Blend
3041    pub follow_up_created_datetime: Option<String>,
3042    #[serde(rename = "currentStatus")]
3043    ///The current status of the followup. Can be Suggested, Declined, Requested, Pending Review, Completed, Completed Externally, Rejected, Cancelled
3044    pub current_status: Option<String>,
3045    #[serde(rename = "requestedDatetime")]
3046    ///The UTC timestamp when the followup was requested
3047    pub requested_datetime: Option<String>,
3048    #[serde(rename = "requestedUserId")]
3049    ///The user_id that requested the followup. Can be 'system' or a Lender User ID
3050    pub requested_user_id: Option<String>,
3051    #[serde(rename = "requestedUserName")]
3052    ///Full name of the Lender User that requested the followup
3053    pub requested_user_name: Option<String>,
3054    #[serde(rename = "requestedUserEmail")]
3055    ///Email address of the Lender User that requested the followup
3056    pub requested_user_email: Option<String>,
3057    #[serde(rename = "completedDatetime")]
3058    ///The timestamp when the followup was completed by the borrower
3059    pub completed_datetime: Option<String>,
3060    #[serde(rename = "completedUserId")]
3061    ///The User ID that completed the followup (generally associated with a Borrower)
3062    pub completed_user_id: Option<String>,
3063    #[serde(rename = "reviewAction")]
3064    ///The action taken by the reviewing lender. Can be ACCEPT or REJECT.
3065    pub review_action: Option<String>,
3066    #[serde(rename = "reviewedDatetime")]
3067    ///The timestamp when the follow-up was reviewed (in UTC)
3068    pub reviewed_datetime: Option<String>,
3069    #[serde(rename = "reviewedUserId")]
3070    ///The Lender User ID that reviewed the followup
3071    pub reviewed_user_id: Option<String>,
3072    #[serde(rename = "cancelledDatetime")]
3073    ///The timestamp when the followup was cancelled (in UTC)
3074    pub cancelled_datetime: Option<String>,
3075    #[serde(rename = "cancelledUserId")]
3076    ///The lender User ID that cancelled the followup
3077    pub cancelled_user_id: Option<String>,
3078    #[serde(rename = "asOfDate")]
3079    ///The date that the report was generated
3080    pub as_of_date: String,
3081    #[serde(rename = "clientFollowupReferenceId")]
3082    ///Unique id passed by client for referencing follow-up
3083    pub client_followup_reference_id: Option<String>,
3084}
3085impl std::fmt::Display for ReportingFollowupsSchema {
3086    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3087        write!(f, "{}", serde_json::to_string(self).unwrap())
3088    }
3089}
3090#[derive(Debug, Serialize, Deserialize)]
3091pub struct ReportingLenderPabActivitiesSchema {
3092    #[serde(rename = "activityId")]
3093    ///Unique ID of the activity
3094    pub activity_id: String,
3095    #[serde(rename = "loanId")]
3096    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
3097    pub loan_id: String,
3098    #[serde(rename = "loanNumber")]
3099    ///A mutable identifier of the application. Not safe to use to connect the application's identity across Blend and external systems because it can and (for most implementations) will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
3100    pub loan_number: Option<String>,
3101    #[serde(rename = "loanType")]
3102    ///The specific product (Mortgage, HELOAN, HELOC, Auto, etc)
3103    pub loan_type: Option<String>,
3104    #[serde(rename = "loanPurposeType")]
3105    ///REFINANCE or PURCHASE for Mortgage loans. Will be set to OTHER or null for other loan types.
3106    pub loan_purpose_type: Option<String>,
3107    #[serde(rename = "appLeadSource")]
3108    ///Specifies how an app was created (BORROWER, LENDER, INGEST, PUBLIC_API)
3109    pub app_lead_source: Option<String>,
3110    #[serde(rename = "userId")]
3111    ///User ID for the user that completed the action (can be the user ID for a borrower or lender, or 'system')
3112    pub user_id: Option<String>,
3113    #[serde(rename = "userType")]
3114    ///The type for the user that completed the action. Can be system, borrower, or lender
3115    pub user_type: Option<String>,
3116    #[serde(rename = "lenderUserName")]
3117    ///If userType is a lender, the full name of the lender user that completed the activity
3118    pub lender_user_name: Option<String>,
3119    #[serde(rename = "lenderUserEmail")]
3120    ///If userType is a lender, the email address of the lender user that completed the activity
3121    pub lender_user_email: Option<String>,
3122    #[serde(rename = "activityType")]
3123    ///Which PAB Activity was done on the loan. Can be 'ecoa updated', 'pulled credit' 'selected a product' 'sent pre-approval letter' 'ran desktop underwriter'
3124    pub activity_type: Option<String>,
3125    #[serde(rename = "activityDatetime")]
3126    ///The UTC timestamp for when the activity was done on the loan
3127    pub activity_datetime: Option<String>,
3128    #[serde(rename = "activitySuccess")]
3129    ///Field indicating whether the activity was successful or not
3130    pub activity_success: Option<bool>,
3131    #[serde(rename = "creditPulltype")]
3132    ///For credit pull events - the type of credit pull (Hard or Soft)
3133    pub credit_pulltype: Option<String>,
3134    #[serde(rename = "creditBureaus")]
3135    ///For credit pull events - a JSON array containing the bureaus where credit was pulled from
3136    pub credit_bureaus: Option<String>,
3137    #[serde(rename = "creditBureautype")]
3138    ///For credit pull events - the type of pull (single or tri)
3139    pub credit_bureautype: Option<String>,
3140    #[serde(rename = "creditJoint")]
3141    ///For credit pull events - if the credit was pulled jointly.
3142    pub credit_joint: Option<bool>,
3143    #[serde(rename = "creditActiontype")]
3144    ///For credit pull events - the action on the pull
3145    pub credit_actiontype: Option<String>,
3146    #[serde(rename = "duRecommendation")]
3147    ///For desktop underwriting events - what the recommendation is
3148    pub du_recommendation: Option<String>,
3149}
3150impl std::fmt::Display for ReportingLenderPabActivitiesSchema {
3151    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3152        write!(f, "{}", serde_json::to_string(self).unwrap())
3153    }
3154}
3155#[derive(Debug, Serialize, Deserialize)]
3156pub struct ReportingDepositAccountApplicationsSchema {
3157    #[serde(rename = "asOfDatetime")]
3158    ///UTC datetime of when the data in the report was last refreshed.
3159    pub as_of_datetime: String,
3160    #[serde(rename = "applicationCreatedDatetime")]
3161    ///UTC datetime of when the application was created.
3162    pub application_created_datetime: String,
3163    #[serde(rename = "applicationId")]
3164    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
3165    pub application_id: String,
3166    #[serde(rename = "applicationNumber")]
3167    ///Application number displayed in the Blend Workspace.
3168    pub application_number: Option<String>,
3169    #[serde(rename = "leadSource")]
3170    ///Type of party that created the application, either "BORROWER" (i.e. the applicant) or "LENDER".
3171    pub lead_source: Option<String>,
3172    #[serde(rename = "appSourceMarketingTag")]
3173    ///Marketing identifier of the top-of-funnel campaign to which the application should be attributed.
3174    pub app_source_marketing_tag: Option<String>,
3175    #[serde(rename = "applicantSignupUrl")]
3176    ///URL of the page through which the primary applicant first created a Blend account. This URL may contain useful referral information if the applicant first arrived at the signup page through a lender-user's custom link or invitation. If there is no URL associated with the primary applicant, this field falls back on the first signup URL associated with the application overall (i.e. that of a coapplicant), if any.
3177    pub applicant_signup_url: Option<String>,
3178    #[serde(rename = "isSingleAppFlowApplication")]
3179    ///Boolean indicator for whether the deposit account application was created (and prefilled) via the "Single App Flow" feature, wherein the applicant had actually started by submitting an application for another product, such as a credit card or a loan, for which the applicant must hold a deposit account in order to be eligible. In this situation, the applicant would have been taken from that original application into a new deposit account application with as many fields prefilled as possible based on the applicant's responses in preceding application.
3180    pub is_single_app_flow_application: Option<bool>,
3181    #[serde(rename = "prefillSourceApplicationId")]
3182    ///In the case of a "Single App Flow" application, the application_id of the applicant's previous credit card or loan application from which the new required deposit account application was prefilled.
3183    pub prefill_source_application_id: Option<String>,
3184    #[serde(rename = "prefillSourceApplicationType")]
3185    ///IIn the case of a "Single App Flow" application, the product for which the applicant was originally applying, i.e. the product associated with the prefill_source_application_id; for example "Credit Card", "Personal Loan", "Auto Loan", etc.
3186    pub prefill_source_application_type: Option<String>,
3187    #[serde(rename = "primaryAssignedReviewerUserId")]
3188    ///Blend user ID of the application's primary assigned lender-user.
3189    pub primary_assigned_reviewer_user_id: Option<String>,
3190    #[serde(rename = "primaryAssignedReviewerFullName")]
3191    ///Full name in the primary assigned reviewer's user profile.
3192    pub primary_assigned_reviewer_full_name: Option<String>,
3193    #[serde(rename = "primaryAssignedReviewerEmail")]
3194    ///Email address of the primary assigned reviewer.
3195    pub primary_assigned_reviewer_email: Option<String>,
3196    #[serde(rename = "primaryAssignedReviewerBranchId")]
3197    ///Branch ID in the primary assigned reviewer's user profile.
3198    pub primary_assigned_reviewer_branch_id: Option<String>,
3199    #[serde(rename = "primaryAssignedReviewerEmployeeId")]
3200    ///Employee ID in the primary assigned reviewer's user profile.
3201    pub primary_assigned_reviewer_employee_id: Option<String>,
3202    #[serde(rename = "primaryAssignedReviewerNmlsId")]
3203    ///Nationwide Multistate Licensing System ID in the primary assigned reviewer's user profile.
3204    pub primary_assigned_reviewer_nmls_id: Option<String>,
3205    #[serde(rename = "productBundleReferenceId")]
3206    ///Product bundle ID associated with the application (a single application can open multiple accounts, e.g. "Checking & Savings").
3207    pub product_bundle_reference_id: Option<String>,
3208    #[serde(rename = "totalNumberofAccountsInBundle")]
3209    ///Number of accounts in the product bundle that will be opened if the application is approved.
3210    pub total_numberof_accounts_in_bundle: Option<i64>,
3211    #[serde(rename = "debitCardSelected")]
3212    ///Booelan indicator for whether the applicant opted in for a debit card.
3213    pub debit_card_selected: Option<bool>,
3214    #[serde(rename = "overdraftProtectionSelected")]
3215    ///Boolean indicator for whether the applicant opted in for overdraft protection.
3216    pub overdraft_protection_selected: Option<bool>,
3217    #[serde(rename = "numberOfCheckingAccounts")]
3218    ///Number of checking accounts in the product bundle that will be opened if the application is approved.
3219    pub number_of_checking_accounts: Option<i64>,
3220    #[serde(rename = "checkingProductReferenceIds")]
3221    ///Product ID(s) of the specific checking product(s) in the bundle; may be the same as the productBundleReferenceId if the application is for a single checking account. This field will contain a comma-separated list of IDs when the application is for a multi-account bundle containing more than one checking account.
3222    pub checking_product_reference_ids: Option<String>,
3223    #[serde(rename = "checkingProductNames")]
3224    ///Full humanized name(s) of the checking product(s) in the bundle. This field will contain a comma-separated list of names when the application is for a multi-account bundle with more than one checking account.
3225    pub checking_product_names: Option<String>,
3226    #[serde(rename = "numberOfSavingsAccounts")]
3227    ///Number of savings accounts in the product bundle that will be opened if the application is approved.
3228    pub number_of_savings_accounts: Option<i64>,
3229    #[serde(rename = "savingsProductReferenceIds")]
3230    ///Product ID(s) of the specific savings product(s) in the bundle; may be the same as the productBundleReferenceId if the application is for a single savings account. This field will contain a comma-separated list of identifiers when the application is for a multi-account bundle containing more than one savings account.
3231    pub savings_product_reference_ids: Option<String>,
3232    #[serde(rename = "savingsProductNames")]
3233    ///Full humanized name(s) of the savings product(s) in the bundle. This field will contain a comma-separated list of names when the application is for a multi-account bundle with more than one savings account.
3234    pub savings_product_names: Option<String>,
3235    #[serde(rename = "numberofCdAccounts")]
3236    ///Number of certificates of deposit (CDs) in the product bundle that will be opened if the application is approved.
3237    pub numberof_cd_accounts: Option<i64>,
3238    #[serde(rename = "cdProductReferenceIds")]
3239    ///Product ID(s) of the specific CD product(s) in the bundle; may be the same as the productBundleReferenceId if the application is for a single CD. This field will contain a comma-separated list of identifiers when the application is for a multi-account bundle containing more than one CD.
3240    pub cd_product_reference_ids: Option<String>,
3241    #[serde(rename = "cdProductNames")]
3242    ///Full humanized name(s) of the CD product(s) in the bundle. This field will contain a comma-separated list of names when the application is for a multi-account bundle with more than one CD.
3243    pub cd_product_names: Option<String>,
3244    #[serde(rename = "cdTerms")]
3245    ///Chosen term length(s) of the CD(s) in the bundle, appearing as strings such as "12_MONTHS" and "36_MONTHS". This field will contain a comma-separated list of term lengths when the application is for a multi-account bundle with more than one CD.
3246    pub cd_terms: Option<String>,
3247    #[serde(rename = "numberofHsaAccounts")]
3248    ///Number of health savings accounts (HSAs) in the product bundle that will be opened if the application is approved.
3249    pub numberof_hsa_accounts: Option<i64>,
3250    #[serde(rename = "hsaProductReferenceIds")]
3251    ///Product ID(s) of the specific HSA product(s) in the bundle; may be the same as the productBundleReferenceId if the application is for a single HSA. This field will contain a comma-separated list of identifiers when the application is for a multi-account bundle containing more than one HSA.
3252    pub hsa_product_reference_ids: Option<String>,
3253    #[serde(rename = "hsaProductNames")]
3254    ///Full humanized name(s) of the HSA product(s) in the bundle. This field will contain a comma-separated list of names when the application is for a multi-account bundle with more than one HSA.
3255    pub hsa_product_names: Option<String>,
3256    #[serde(rename = "hsaPlanTypes")]
3257    ///Chosen plan type(s) of the HSA(s) in the bundle, either "INDIVIDUAL" or "FAMILY". This field will contain a comma-separated list of plan types when the application is for a multi-account bundle with more than one HSA.
3258    pub hsa_plan_types: Option<String>,
3259    #[serde(rename = "totalNumberOfApplicants")]
3260    ///Number of applicants on the application (primary, co-, and minor applicants).
3261    pub total_number_of_applicants: Option<i64>,
3262    #[serde(rename = "numberOfPrimaryApplicants")]
3263    ///Number of primary applicants on the application. Every application should have one primary applicant.
3264    pub number_of_primary_applicants: Option<i64>,
3265    #[serde(rename = "primaryApplicantEmploymentStatus")]
3266    ///Employment status of the primary applicant. There are five statuses the applicant can choose from, including "EMPLOYED", "SELF_EMPLOYED", "UNEMPLOYED", "RETIRED", and "NEVER_EMPLOYED".
3267    pub primary_applicant_employment_status: Option<String>,
3268    #[serde(rename = "primaryApplicantIsExistingMember")]
3269    ///Boolean indicator that is TRUE if the primary applicant indicated that they are an existing member of the institution.
3270    pub primary_applicant_is_existing_member: Option<bool>,
3271    #[serde(rename = "numberOfCoapplicants")]
3272    ///Number of coapplicants on the application.
3273    pub number_of_coapplicants: Option<i64>,
3274    #[serde(rename = "coapplicantEmploymentStatus")]
3275    ///Employment status of the coapplicant. There are five statuses the coapplicant can choose from, including "EMPLOYED", "SELF_EMPLOYED", "UNEMPLOYED", "RETIRED", and "NEVER_EMPLOYED".
3276    pub coapplicant_employment_status: Option<String>,
3277    #[serde(rename = "numberOfMinorApplicants")]
3278    ///Number of minor applicants (i.e. persons under 18) on the application.
3279    pub number_of_minor_applicants: Option<i64>,
3280    #[serde(rename = "firstUiTrackingEventDatetime")]
3281    ///UTC datetime of the first tracking event associated with the application. The presence of an event should indicate that the applicant at least allowed the UI to load.
3282    pub first_ui_tracking_event_datetime: Option<String>,
3283    #[serde(rename = "firstMinorInfoWorkflowEventDatetime")]
3284    ///UTC datetime of the first tracking event in the "Minor Info" workflow.
3285    pub first_minor_info_workflow_event_datetime: Option<String>,
3286    #[serde(rename = "firstPersonalInfoWorkflowEventDatetime")]
3287    ///UTC datetime of the first tracking event in the "Personal Info" workflow.
3288    pub first_personal_info_workflow_event_datetime: Option<String>,
3289    #[serde(rename = "hasActivityBeyondInitialDetailsTask")]
3290    ///Boolean indicator compiling all possible downfunnel evidence that the application made it past the initial "Get Applicant Details" task in the "Personal Info" workflow. The field is intended to be used as a more qualified definition of "started", with a value of TRUE identifying applications that were not abandoned on the first page.
3291    pub has_activity_beyond_initial_details_task: Option<bool>,
3292    #[serde(rename = "deviceTypestart")]
3293    ///Type of device ("Desktop", "Mobile", or "Tablet") used for the application's first user action, which should correspond to clicking "continue" on the first page of the application.
3294    pub device_typestart: Option<String>,
3295    #[serde(rename = "firstIdvWorkflowEventDatetime")]
3296    ///UTC datetime of the first tracking event in the "Identity Verfication" workflow.
3297    pub first_idv_workflow_event_datetime: Option<String>,
3298    #[serde(rename = "firstIdvWorkflowSubmitDatetime")]
3299    ///UTC datetime of the first click on "Submit and Continue" on the final page of the "Identity Verification" workflow, which should submit the applicant's information to the third-party identity verification (IDV) provider (Alloy or Socure). The exception to this is when the applicant is an existing member of the institution, and the institution has configured its application to "offboard" existing members from the application without submission to the IDV provider.
3300    pub first_idv_workflow_submit_datetime: Option<String>,
3301    #[serde(rename = "firstIdvWorkflowAdditionalInfoRequestedDatetime")]
3302    ///UTC datetime of the first time an applicant was sent to the supplementary "Step Up" task in the "Identity Verification" workflow, where additional identifying information is requested, if the initial ID information provided was found to be insufficient for evaluation/decisioning.
3303    pub first_idv_workflow_additional_info_requested_datetime: Option<String>,
3304    #[serde(rename = "firstAccountSetupWorkflowEventDatetime")]
3305    ///UTC datetime of the first tracking event in the "Account Setup" workflow.
3306    pub first_account_setup_workflow_event_datetime: Option<String>,
3307    #[serde(rename = "has_beneficiaries_added")]
3308    ///Boolean indicator for whether any beneficiaries were specified and allocated for the new account(s) in the "Account Setup" workflow.
3309    pub has_beneficiaries_added: Option<bool>,
3310    #[serde(rename = "applicationSubmittedDatetime")]
3311    ///UTC datetime of application submission.
3312    pub application_submitted_datetime: Option<String>,
3313    #[serde(rename = "applicationSubmissionStatus")]
3314    ///Supplementary status indicator that may be able to confirm application submission even in the case of a lapse in the event tracking that produces applicationSubmittedDatetime; either "SUBMITTED" or "NOT SUBMITTED".
3315    pub application_submission_status: Option<String>,
3316    #[serde(rename = "totalNumberOfFollowupsRequested")]
3317    ///Number of follow-up tasks requested of the applicant by a lender-user through Blend's "Follow-Ups" tool.
3318    pub total_number_of_followups_requested: Option<i64>,
3319    #[serde(rename = "firstAutomatedApprovalDatetime")]
3320    ///UTC datetime of the first automated approval decision on the application emitted by the third-party identity verification (IDV) provider (Alloy or Socure). An approval decision will not be emitted unless and until the application is submitted.
3321    pub first_automated_approval_datetime: Option<String>,
3322    #[serde(rename = "firstAutomatedReferralDatetime")]
3323    ///UTC datetime of the first automated referral on the application, where the third-party identity verification (IDV) provider (Alloy or Socure) flags the application for manual review by a lender-user. A referral decision will not be made unless and until the application is submitted.
3324    pub first_automated_referral_datetime: Option<String>,
3325    #[serde(rename = "firstAutomatedRejectionDatetime")]
3326    ///UTC datetime of the first automated rejection decision by the third-party identity verification (IDV) provider (Alloy or Socure) or by the "system" (i.e. application configurations set by the institution to reject/"offboard" certain applicants, like existing members, on the spot). A rejection decision can be emitted prior to application submission if the applicant fails the basic preliminary IDV screening (because of a low Qualifile score) and triggers an "adverse action notice" (AAN) in the "Identity Verification" workflow, or if they are rejected by system rules.
3327    pub first_automated_rejection_datetime: Option<String>,
3328    #[serde(rename = "firstAutomatedRejectionSource")]
3329    ///Source of the first automated rejection decision, either "IDV provider" (Alloy or Socure) or "system" (i.e. application configurations set by the institution to reject/"offboard" certain applicants, like existing members, on the spot).
3330    pub first_automated_rejection_source: Option<String>,
3331    #[serde(rename = "primaryApplicantRejectedViaAan")]
3332    ///Booelan indicator for whether the primary applicant was rejected via "adverse action notice" (AAN) based on their "Qualifile" score in the "Identity Verification" workflow, which would result in an immediate rejection of the application without proceeding to the "Account Setup" workflow. If the applicant has not yet submitted their information for IDV evaulation, this field will be null.
3333    pub primary_applicant_rejected_via_aan: Option<bool>,
3334    #[serde(rename = "coapplicantRejectedViaAan")]
3335    ///Booelan indicator for whether the coapplicant was rejected via "adverse action notice" (AAN) based on their "Qualifile" score in the "Identity Verification" workflow. If there is no coapplicant on the application, or the coapplicant has not yet submitted their information for IDV evaulation, this field will be null.
3336    pub coapplicant_rejected_via_aan: Option<bool>,
3337    #[serde(rename = "firstManualApprovalDatetime")]
3338    ///UTC datetime of the first manual approval decision on the application issued by a lender-user. An application cannot be reviewed or approved unless and until the application is submitted.
3339    pub first_manual_approval_datetime: Option<String>,
3340    #[serde(rename = "firstManualApprovalReviewerUserId")]
3341    ///Blend user ID of the lender-user who manually approved the application.
3342    pub first_manual_approval_reviewer_user_id: Option<String>,
3343    #[serde(rename = "firstManualApprovalReviewerFullName")]
3344    ///Full name in the user profile of the lender-user who manually approved the application.
3345    pub first_manual_approval_reviewer_full_name: Option<String>,
3346    #[serde(rename = "firstManualApprovalReviewerEmail")]
3347    ///Email address of the lender-user who manually approved the application.
3348    pub first_manual_approval_reviewer_email: Option<String>,
3349    #[serde(rename = "firstManualApprovalReviewerBranchId")]
3350    ///Branch ID in the user profile of the lender-user who manually approved the application.
3351    pub first_manual_approval_reviewer_branch_id: Option<String>,
3352    #[serde(rename = "firstManualApprovalReviewerEmployeeId")]
3353    ///Employee ID in the user profile of the lender-user who manually approved the application.
3354    pub first_manual_approval_reviewer_employee_id: Option<String>,
3355    #[serde(rename = "firstManualApprovalReviewerNmlsId")]
3356    ///Nationwide Multistate Licensing System ID in the user profile of the lender-user who manually approved the application.
3357    pub first_manual_approval_reviewer_nmls_id: Option<String>,
3358    #[serde(rename = "firstManualRejectionDatetime")]
3359    ///UTC datetime of the first manual rejection decision on the application issued by a lender user. An application cannot be reviewed or rejected unless and until the application is submitted.
3360    pub first_manual_rejection_datetime: Option<String>,
3361    #[serde(rename = "firstManualRejectionReviewerUserId")]
3362    ///Blend user ID of the lender-user who manually rejected the application.
3363    pub first_manual_rejection_reviewer_user_id: Option<String>,
3364    #[serde(rename = "firstManualRejectionReviewerFullName")]
3365    ///Full name in the user profile of the lender-user who manually rejected the application.
3366    pub first_manual_rejection_reviewer_full_name: Option<String>,
3367    #[serde(rename = "firstManualRejectionReviewerEmail")]
3368    ///Email address of the lender-user who manually rejected the application.
3369    pub first_manual_rejection_reviewer_email: Option<String>,
3370    #[serde(rename = "firstManualRejectionReviewerBranchId")]
3371    ///Branch ID in the user profile of the lender-user who manually rejected the application.
3372    pub first_manual_rejection_reviewer_branch_id: Option<String>,
3373    #[serde(rename = "firstManualRejectionReviewerEmployeeId")]
3374    ///Employee ID in the user profile of the lender-user who manually rejected the application.
3375    pub first_manual_rejection_reviewer_employee_id: Option<String>,
3376    #[serde(rename = "firstManualRejectionReviewerNmlsId")]
3377    ///Nationwide Multistate Licensing System ID in the user profile of the lender-user who manually rejected the application.
3378    pub first_manual_rejection_reviewer_nmls_id: Option<String>,
3379    #[serde(rename = "latestDecisionDatetime")]
3380    ///UTC datetime of the latest decision on the application, automated or manual, approval or rejection. See descriptions of first_automated_approval_datetime, first_automated_rejection_datetime, first_manual_approval_datetime, and first_manual_rejection_datetime for detail on each decision type and outcome. Referrals are not considered true "decisions" and thus are ignored by this field.
3381    pub latest_decision_datetime: Option<String>,
3382    #[serde(rename = "latestDecisionType")]
3383    ///Type, either "automated" or "manual", of the latest decision on the appliction, approval or rejection. Referrals are not considered true "decisions" and thus are ignored by this field.
3384    pub latest_decision_type: Option<String>,
3385    #[serde(rename = "latestDecisionOutcome")]
3386    ///Outcome, either "approve" or "reject", of the latest decision on the application, automated or manual. Referrals are not considered true "decisions" and thus are ignored by this field.
3387    pub latest_decision_outcome: Option<String>,
3388    #[serde(rename = "latestDecisionAutomatedRejectionSource")]
3389    ///If the latest decision on the application is an automated rejection, the source of that rejection, either "IDV provider" (Alloy or Socure) or "system" (i.e. application configurations set by the institution to reject/"offboard" certain applicants, like existing members, on the spot).
3390    pub latest_decision_automated_rejection_source: Option<String>,
3391    #[serde(rename = "latestDecisionReviewerUserId")]
3392    ///If the latest decision on the application is manual, the Blend user ID of the lender-user who made that decision.
3393    pub latest_decision_reviewer_user_id: Option<String>,
3394    #[serde(rename = "latestDecisionReviewerFullName")]
3395    ///If the latest decision on the application is manual, the full name in the user profile of the lender-user who made that decision.
3396    pub latest_decision_reviewer_full_name: Option<String>,
3397    #[serde(rename = "latestDecisionReviewerEmail")]
3398    ///If the latest decision on the application is manual, the email address of the lender-user who made that decision.
3399    pub latest_decision_reviewer_email: Option<String>,
3400    #[serde(rename = "latestDecisionReviewerBranchId")]
3401    ///If the latest decision on the application is manual, the branch ID in the user profile of the lender-user who made that decision.
3402    pub latest_decision_reviewer_branch_id: Option<String>,
3403    #[serde(rename = "latestDecisionReviewerEmployeeId")]
3404    ///If the latest decision on the application is manual, the employee ID in the user profile of the lender-user who made the decision.
3405    pub latest_decision_reviewer_employee_id: Option<String>,
3406    #[serde(rename = "latestDecisionReviewerNmlsId")]
3407    ///If the latest decision on the application is manual, the Nationwide Multistate Licensing System ID in the user profile of the lender-user who made that latest decision.
3408    pub latest_decision_reviewer_nmls_id: Option<String>,
3409    #[serde(rename = "applicationApprovalStatus")]
3410    ///Approval status of the application, either "APPROVED", "REFERRED", or "REJECTED" if the application has reached a decisioning point, or null if not.
3411    pub application_approval_status: Option<String>,
3412    #[serde(rename = "accountBookedToCoreDatetime")]
3413    ///UTC datetime that the newly opened account(s) was successfully booked to the institution's core banking system.
3414    pub account_booked_to_core_datetime: Option<String>,
3415    #[serde(rename = "applicationBookingStatus")]
3416    ///Supplementary status indicator that may be able to confirm that the newly opened account(s) was successfully booked even in the case of a lapse in the event tracking that produces accountBookedToCoreDatetime; either "BOOKED" or null.
3417    pub application_booking_status: Option<String>,
3418    #[serde(rename = "firstFundingWorkflowEventDatetime")]
3419    ///UTC datetime of the first tracking event in the "Opening Deposit" workflow.
3420    pub first_funding_workflow_event_datetime: Option<String>,
3421    #[serde(rename = "firstOpeningDepositTransactionSubmittedDatetime")]
3422    ///UTC datetime of the first deposit transaction submitted through the "Opening Deposit" workflow. The exception to this is for institutions that have configured their application to preemptively require the applicant to complete the opening deposit tasks in the "Account Setup" workflow prior to application submission, in which case this field will still report a datetime once those tasks have been completed, even if the application was never subsequently submitted, approved, and booked to the core banking system, and accordingly no opening deposits were actually transferred.
3423    pub first_opening_deposit_transaction_submitted_datetime: Option<String>,
3424    #[serde(rename = "numberOfNewAccountsFunded")]
3425    ///Number of newly opened accounts funded with an initial deposit submitted through the "Opening Deposit" workflow. The exception to this is for institutions that have configured their application to preemptively require the applicant to complete the opening deposit tasks in the "Account Setup" workflow prior to application submission, in which case this field will still report the number of intended desintation accounts once those tasks have been completed, even if the application was never subsequently submitted, approved, and booked to the core banking system, and accordingly no opening deposits were actually transferred.
3426    pub number_of_new_accounts_funded: Option<i64>,
3427    #[serde(rename = "openingDepositAmounts")]
3428    ///Dollar amount(s) of the opening deposit(s) submitted through the "Opening Deposit" workflow, rounded to the nearest increment of 50. This field will contain a comma-separated list of amounts when multiple newly opened accounts that originated from the same application were funded. The exception to this is for institutions that have configured their application to preemptively require the applicant to complete the opening deposit tasks in the "Account Setup" workflow prior to application submission, in which case this field will still report the intended deposit amount(s) once those tasks have been completed, even if the application was never subsequently submitted, approved, and booked to the core banking system, and accordingly no opening deposits were actually transferred.
3429    pub opening_deposit_amounts: Option<String>,
3430    #[serde(rename = "totalAmountDeposited")]
3431    ///Sum of the dollar amounts (each rounded to the nearest increment of 50 prior to summation) of the opening deposits submitted through the "Opening Deposit" workflow; the sum will be the same as the value in opening_deposit_amounts if only one new account was funded. The exception to this is for institutions that have configured their application to preemptively require the applicant to complete the opening deposit tasks in the "Account Setup" workflow prior to application submission, in which case this field will still report the intended total deposit amount once those tasks have been completed, even if the application was never subsequently submitted, approved, and booked to the core banking system, and accordingly no opening deposits were actually transferred.
3432    pub total_amount_deposited: Option<i64>,
3433    #[serde(rename = "openingDepositSourceAccountConnectionMethod")]
3434    ///Method used to connect an external source account for the transfer of an opening deposit in the "Opening Deposit" workflow. The applicant can either use the Plaid integration to log in to a financial institution, or manually enter the account and routing numbers of the source account. This field will have a value of either "Plaid", "manual entry", or "unknown" when first_opening_deposit_transaction_submitted_datetime is populated, and null otherwise. The exception to this is for institutions that have configured their application to preemptively require the applicant to complete the opening deposit tasks in the "Account Setup" workflow prior to application submission, in which case this field will still report the chosen connection method once those tasks have been completed, even if the application was never subsequently submitted, approved, and booked to the core banking system, and accordingly no opening deposits were actually transferred.
3435    pub opening_deposit_source_account_connection_method: Option<String>,
3436    #[serde(rename = "openingDepositSourceAccountType")]
3437    ///Type of source account used to fund the opening deposit, either "checking", "savings", or "unknown". The account type (checking or savings) is known for all Plaid-connected source accounts, whereas this information is only collected for manually entered source accounts if the instutition has configured the application to ask the applicant to specify the account type. The exception to this is for institutions that have configured their application to preemptively require the applicant to complete the opening deposit tasks in the "Account Setup" workflow prior to application submission, in which case this field will still report the intended source account type once those tasks have been completed, even if the application was never subsequently submitted, approved, and booked to the core banking system, and accordingly no opening deposits were actually transferred.
3438    pub opening_deposit_source_account_type: Option<String>,
3439    #[serde(rename = "applicationFundingStatus")]
3440    ///Funding status of the application. This field will be "FUNDED VIA BLEND" if an opening deposit for at least one newly opened account was submitted through the "Opening Deposit" workflow (i.e. if application_booking_status = "BOOKED" and first_opening_deposit_transaction_submitted_datetime exists), and null otherwise.
3441    pub application_funding_status: Option<String>,
3442    #[serde(rename = "applicationStatusOverall")]
3443    ///Overall latest status of the application (i.e. the most down-funnel status reached to date), either "NOT SUBMITTED", "SUBMITTED", "REFERRED", "APPROVED", "REJECTED", "BOOKED", or "FUNDED VIA BLEND".
3444    pub application_status_overall: Option<String>,
3445    #[serde(rename = "firstOnlineBankingRegistrationWorkflowEventDatetime")]
3446    ///UTC datetime of the first tracking event in the "Online Banking Registration" workflow.
3447    pub first_online_banking_registration_workflow_event_datetime: Option<String>,
3448    #[serde(rename = "onlineBankingRegistrationCompletedDatetime")]
3449    ///UTC datetime of when the new account holder succesfully created and submitted login credentials for online banking access at the institution via the "Online Banking Registration" workflow.
3450    pub online_banking_registration_completed_datetime: Option<String>,
3451    #[serde(rename = "applicationLateTouchDatetime")]
3452    ///UTC datetime of when the application was last touched (by either an applicant or a lender-user).
3453    pub application_late_touch_datetime: Option<String>,
3454    #[serde(rename = "applicationLastTouchedByUserId")]
3455    ///Blend user ID of the applicant or lender-user who last touched the application.
3456    pub application_last_touched_by_user_id: Option<String>,
3457    #[serde(rename = "applicationLastUpdatedDatetime")]
3458    ///UTC datetime of when the application record was last updated by the system.
3459    pub application_last_updated_datetime: Option<String>,
3460    #[serde(rename = "applicationArchivedDatetime")]
3461    ///UTC datetime of when the application was archived in Blend.
3462    pub application_archived_datetime: Option<String>,
3463    #[serde(rename = "applicationDeletedDatetime")]
3464    ///UTC datetime of when the application was deleted by a user.
3465    pub application_deleted_datetime: Option<String>,
3466    #[serde(rename = "applicationPurgedDatetime")]
3467    ///UTC datetime of when the application was purged from Blend production.
3468    pub application_purged_datetime: Option<String>,
3469}
3470impl std::fmt::Display for ReportingDepositAccountApplicationsSchema {
3471    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3472        write!(f, "{}", serde_json::to_string(self).unwrap())
3473    }
3474}
3475#[derive(Debug, Serialize, Deserialize)]
3476pub struct EventSchema {
3477    #[serde(rename = "eventId")]
3478    ///Blend UUID of the event
3479    pub event_id: String,
3480    #[serde(rename = "entityId")]
3481    ///A Blend UUID. If this is set, all events for the given entity are returned.
3482    pub entity_id: Option<String>,
3483    #[serde(rename = "status")]
3484    ///The latest status of the event, updated by the API
3485    pub status: String,
3486    #[serde(rename = "eventType")]
3487    ///Event type
3488    pub event_type: String,
3489    #[serde(rename = "createdAt")]
3490    ///The UTC timestamp of the event creation. ISO format
3491    pub created_at: String,
3492    #[serde(rename = "statusSetAt")]
3493    ///The UTC timestamp of the latest status that was posted for the event. ISO format
3494    pub status_set_at: String,
3495}
3496impl std::fmt::Display for EventSchema {
3497    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3498        write!(f, "{}", serde_json::to_string(self).unwrap())
3499    }
3500}
3501#[derive(Debug, Serialize, Deserialize)]
3502pub struct EventWithDataSchema(pub serde_json::Value);
3503#[derive(Debug, Serialize, Deserialize)]
3504pub struct EventDescribePath {
3505    #[serde(rename = "type")]
3506    ///The readable name of the event type relative to the system relevant to the described path.
3507    pub type_: String,
3508    #[serde(rename = "system")]
3509    ///The system producing or receiving the event.
3510    pub system: String,
3511    #[serde(rename = "version")]
3512    ///The version of the system producing or receiving the events. May be null for systems with no versioning.
3513    pub version: String,
3514}
3515impl std::fmt::Display for EventDescribePath {
3516    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3517        write!(f, "{}", serde_json::to_string(self).unwrap())
3518    }
3519}
3520#[derive(Debug, Serialize, Deserialize)]
3521pub struct EventDescribeMetadata {
3522    #[serde(rename = "inbound")]
3523    pub inbound: EventDescribePath,
3524    #[serde(rename = "outbound")]
3525    pub outbound: EventDescribePath,
3526    #[serde(rename = "validDecorators")]
3527    pub valid_decorators: Vec<String>,
3528}
3529impl std::fmt::Display for EventDescribeMetadata {
3530    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3531        write!(f, "{}", serde_json::to_string(self).unwrap())
3532    }
3533}
3534#[derive(Debug, Serialize, Deserialize)]
3535pub struct SchemaFlagSchema {
3536    #[serde(rename = "presence")]
3537    ///A string flag that denotes whether the described parent is required, optional, or conditionally allowed.
3538    pub presence: String,
3539    #[serde(rename = "allowUnknown")]
3540    ///Describes whether or not the consumer should allow unknown additional keys or explicitly decline them when parsing an object.
3541    pub allow_unknown: Option<bool>,
3542}
3543impl std::fmt::Display for SchemaFlagSchema {
3544    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3545        write!(f, "{}", serde_json::to_string(self).unwrap())
3546    }
3547}
3548#[derive(Debug, Serialize, Deserialize)]
3549pub struct EventDescribeChildSchema {
3550    #[serde(rename = "type")]
3551    ///The data type of the child object, which could be an compound or primitive data type.
3552    pub type_: String,
3553    #[serde(rename = "flags")]
3554    pub flags: SchemaFlagSchema,
3555    #[serde(rename = "invalids")]
3556    pub invalids: Vec<String>,
3557    #[serde(rename = "rules")]
3558    pub rules: Vec<serde_json::Value>,
3559}
3560impl std::fmt::Display for EventDescribeChildSchema {
3561    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3562        write!(f, "{}", serde_json::to_string(self).unwrap())
3563    }
3564}
3565#[derive(Debug, Serialize, Deserialize)]
3566pub struct EventDescribeSchemaSchema {
3567    #[serde(rename = "type")]
3568    ///The data type of the schema, which can be any primitive or an object.
3569    pub type_: String,
3570    #[serde(rename = "flags")]
3571    pub flags: SchemaFlagSchema,
3572    #[serde(rename = "children")]
3573    pub children: serde_json::Value,
3574}
3575impl std::fmt::Display for EventDescribeSchemaSchema {
3576    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3577        write!(f, "{}", serde_json::to_string(self).unwrap())
3578    }
3579}
3580#[derive(Debug, Serialize, Deserialize)]
3581pub struct EventDescribeSchema {
3582    #[serde(rename = "metadata")]
3583    pub metadata: EventDescribeMetadata,
3584    #[serde(rename = "schema")]
3585    ///A key value pair where the key is the property name and the value is an object defining acceptable values for that property.
3586    pub schema: Option<EventDescribeSchemaSchema>,
3587}
3588impl std::fmt::Display for EventDescribeSchema {
3589    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3590        write!(f, "{}", serde_json::to_string(self).unwrap())
3591    }
3592}
3593#[derive(Debug, Serialize, Deserialize)]
3594pub struct EventStatusSchema {
3595    #[serde(rename = "status")]
3596    ///The latest status of the event, updated by the API
3597    pub status: String,
3598    #[serde(rename = "occurredAt")]
3599    ///The UTC timestamp of the latest status that was posted for the event, in ISO format
3600    pub occurred_at: String,
3601}
3602impl std::fmt::Display for EventStatusSchema {
3603    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3604        write!(f, "{}", serde_json::to_string(self).unwrap())
3605    }
3606}
3607#[derive(Debug, Serialize, Deserialize)]
3608pub struct EventStatusRequestSchema {
3609    #[serde(rename = "status")]
3610    ///The status of the event
3611    pub status: String,
3612    #[serde(rename = "error")]
3613    ///Only used if an error occurs when processing an event
3614    pub error: Option<serde_json::Value>,
3615}
3616impl std::fmt::Display for EventStatusRequestSchema {
3617    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3618        write!(f, "{}", serde_json::to_string(self).unwrap())
3619    }
3620}
3621#[derive(Debug, Serialize, Deserialize)]
3622pub struct EventInvalidRequestSchema {
3623    #[serde(rename = "error")]
3624    ///Error message
3625    pub error: String,
3626    #[serde(rename = "display")]
3627    ///Error message description
3628    pub display: String,
3629    #[serde(rename = "trackingId")]
3630    ///Provide this to Blend when troubleshooting
3631    pub tracking_id: String,
3632}
3633impl std::fmt::Display for EventInvalidRequestSchema {
3634    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3635        write!(f, "{}", serde_json::to_string(self).unwrap())
3636    }
3637}
3638#[derive(Debug, Serialize, Deserialize)]
3639pub struct EventUnauthorizedSchema {
3640    #[serde(rename = "error")]
3641    ///Error message
3642    pub error: String,
3643    #[serde(rename = "display")]
3644    ///Error message description
3645    pub display: String,
3646    #[serde(rename = "trackingId")]
3647    ///Provide this to Blend when troubleshooting
3648    pub tracking_id: String,
3649}
3650impl std::fmt::Display for EventUnauthorizedSchema {
3651    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3652        write!(f, "{}", serde_json::to_string(self).unwrap())
3653    }
3654}
3655#[derive(Debug, Serialize, Deserialize)]
3656pub struct EventMissingObjectSchema {
3657    #[serde(rename = "error")]
3658    ///Error message
3659    pub error: String,
3660    #[serde(rename = "display")]
3661    ///Error message description
3662    pub display: String,
3663    #[serde(rename = "trackingId")]
3664    ///Provide this to Blend when troubleshooting
3665    pub tracking_id: String,
3666}
3667impl std::fmt::Display for EventMissingObjectSchema {
3668    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3669        write!(f, "{}", serde_json::to_string(self).unwrap())
3670    }
3671}
3672#[derive(Debug, Serialize, Deserialize)]
3673pub struct EventInternalErrorSchema {
3674    #[serde(rename = "error")]
3675    ///Error message
3676    pub error: String,
3677    #[serde(rename = "display")]
3678    ///Error message description
3679    pub display: String,
3680    #[serde(rename = "trackingId")]
3681    ///Provide this to Blend when troubleshooting
3682    pub tracking_id: String,
3683}
3684impl std::fmt::Display for EventInternalErrorSchema {
3685    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3686        write!(f, "{}", serde_json::to_string(self).unwrap())
3687    }
3688}
3689#[derive(Debug, Serialize, Deserialize)]
3690pub struct UnderwritingResultSchema {
3691    #[serde(rename = "id")]
3692    ///The UUID of the Underwriting Result in Blend's system.
3693    pub id: String,
3694    #[serde(rename = "ausProduct")]
3695    ///The AUS system that was used to run the result.
3696    pub aus_product: String,
3697    #[serde(rename = "runData")]
3698    ///A collection of information about a specific AUS run in Blend.
3699    pub run_data: Option<serde_json::Value>,
3700    #[serde(rename = "recommendation")]
3701    ///The returned recommendation from the AUS.
3702    pub recommendation: Option<serde_json::Value>,
3703    #[serde(rename = "findingsDocId")]
3704    ///The UUID for the document that came with the findings for this AUS run.
3705    pub findings_doc_id: Option<String>,
3706    #[serde(rename = "runParameters")]
3707    ///The loan attributes used for this AUS run, such as debt-to-income ratio.
3708    pub run_parameters: Option<serde_json::Value>,
3709}
3710impl std::fmt::Display for UnderwritingResultSchema {
3711    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3712        write!(f, "{}", serde_json::to_string(self).unwrap())
3713    }
3714}
3715#[derive(Debug, Serialize, Deserialize)]
3716pub struct PostFollowUpSchema {
3717    #[serde(rename = "applicationId")]
3718    ///ID of the application to add the follow-up to
3719    pub application_id: String,
3720    #[serde(rename = "type")]
3721    ///Types of follow-ups that can be created
3722    pub type_: String,
3723    #[serde(rename = "comments")]
3724    ///Comments displayed to the party on the follow-up
3725    pub comments: Option<String>,
3726    #[serde(rename = "clientFollowUpReferenceId")]
3727    ///Unique id passed by client for referencing follow-up
3728    pub client_follow_up_reference_id: Option<String>,
3729    #[serde(rename = "dueDate")]
3730    ///UTC Timestamp of follow-up due date
3731    pub due_date: Option<String>,
3732    #[serde(rename = "context")]
3733    pub context: serde_json::Value,
3734}
3735impl std::fmt::Display for PostFollowUpSchema {
3736    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3737        write!(f, "{}", serde_json::to_string(self).unwrap())
3738    }
3739}
3740#[derive(Debug, Serialize, Deserialize)]
3741pub struct PatchFollowUpSchema {
3742    #[serde(rename = "status")]
3743    pub status: Option<String>,
3744    #[serde(rename = "comments")]
3745    ///Comments displayed to the party on the follow-up
3746    pub comments: Option<String>,
3747    #[serde(rename = "clientFollowUpReferenceId")]
3748    ///Unique id passed by client for referencing follow-up
3749    pub client_follow_up_reference_id: Option<String>,
3750    #[serde(rename = "dueDate")]
3751    ///UTC Timestamp of follow-up due date
3752    pub due_date: Option<String>,
3753    #[serde(rename = "context")]
3754    pub context: Option<serde_json::Value>,
3755}
3756impl std::fmt::Display for PatchFollowUpSchema {
3757    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3758        write!(f, "{}", serde_json::to_string(self).unwrap())
3759    }
3760}
3761#[derive(Debug, Serialize, Deserialize)]
3762pub struct FollowUpSchema {
3763    #[serde(rename = "id")]
3764    pub id: String,
3765    #[serde(rename = "applicationId")]
3766    pub application_id: String,
3767    #[serde(rename = "type")]
3768    ///Types of follow-ups that can be returned. This is a superset of FollowUpType that includes the 'SYSTEM' follow-up type corresponding to follow-ups that were requested by Blend automatically, and the 'DOCUMENT_WET_SIGNATURE' follow-up type which is the type of wet-sign follow-ups issued when an external e-sign ('DOCUMENT_SIGNATURE' type) follow-up request fails.
3769    pub type_: String,
3770    #[serde(rename = "status")]
3771    /**Follow-up statuses
3772* **REQUESTED** - Follow-up has been requested and is awaiting completion by the borrower
3773* **IN_PROGRESS** - Follow-up has been started by at least one borrower
3774* **COMPLETED** - Follow-up has been completed by the borrower and if a document request, reviewed and accepted by the lender in the Blend lender UI.
3775* **COMPLETED_EXTERNALLY** - Follow-up has been marked as completed externally in the Blend lender UI
3776* **PENDING_REVIEW** - Follow-up has been completed by the borrower and can be reviewed and accepted or rejected by the lender in the Blend lender UI
3777* **REJECTED** - Follow-up has been completed by the borrower and was reviewed and rejected by the lender in the Blend lender UI
3778*/
3779    pub status: String,
3780    #[serde(rename = "comments")]
3781    ///Comments displayed to the party on the follow-up
3782    pub comments: Option<String>,
3783    #[serde(rename = "clientFollowUpReferenceId")]
3784    ///Unique id passed by client for referencing follow-up
3785    pub client_follow_up_reference_id: Option<String>,
3786    #[serde(rename = "dueDate")]
3787    ///UTC Timestamp of follow-up due date
3788    pub due_date: Option<String>,
3789    #[serde(rename = "requestedAt")]
3790    ///UTC Timestamp of when the follow-up was requested
3791    pub requested_at: String,
3792    #[serde(rename = "requestedBy")]
3793    ///The ID of the user that requested the follow-up, or 'SYSTEM' for automatically requested follow-ups
3794    pub requested_by: String,
3795    #[serde(rename = "context")]
3796    pub context: serde_json::Value,
3797}
3798impl std::fmt::Display for FollowUpSchema {
3799    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3800        write!(f, "{}", serde_json::to_string(self).unwrap())
3801    }
3802}
3803#[derive(Debug, Serialize, Deserialize)]
3804pub struct BasePostFollowUpContext {
3805    #[serde(rename = "partyId")]
3806    pub party_id: String,
3807}
3808impl std::fmt::Display for BasePostFollowUpContext {
3809    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3810        write!(f, "{}", serde_json::to_string(self).unwrap())
3811    }
3812}
3813#[derive(Debug, Serialize, Deserialize)]
3814pub struct BaseFollowUpContext(pub serde_json::Value);
3815#[derive(Debug, Serialize, Deserialize)]
3816pub struct PostDocumentRequestFollowUpContext {
3817    #[serde(rename = "partyId")]
3818    pub party_id: String,
3819    #[serde(rename = "document")]
3820    pub document: serde_json::Value,
3821}
3822impl std::fmt::Display for PostDocumentRequestFollowUpContext {
3823    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3824        write!(f, "{}", serde_json::to_string(self).unwrap())
3825    }
3826}
3827#[derive(Debug, Serialize, Deserialize)]
3828pub struct PatchDocumentRequestFollowUpContext {
3829    #[serde(rename = "document")]
3830    pub document: Option<serde_json::Value>,
3831}
3832impl std::fmt::Display for PatchDocumentRequestFollowUpContext {
3833    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3834        write!(f, "{}", serde_json::to_string(self).unwrap())
3835    }
3836}
3837#[derive(Debug, Serialize, Deserialize)]
3838pub struct DocumentRequestFollowUpContext {
3839    #[serde(rename = "partyId")]
3840    pub party_id: String,
3841    #[serde(rename = "document")]
3842    pub document: serde_json::Value,
3843}
3844impl std::fmt::Display for DocumentRequestFollowUpContext {
3845    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3846        write!(f, "{}", serde_json::to_string(self).unwrap())
3847    }
3848}
3849#[derive(Debug, Serialize, Deserialize)]
3850pub struct PostDocumentSignatureFollowUpContext {
3851    #[serde(rename = "document")]
3852    pub document: serde_json::Value,
3853}
3854impl std::fmt::Display for PostDocumentSignatureFollowUpContext {
3855    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3856        write!(f, "{}", serde_json::to_string(self).unwrap())
3857    }
3858}
3859#[derive(Debug, Serialize, Deserialize)]
3860pub struct PatchDocumentSignatureFollowUpContext {
3861    #[serde(rename = "document")]
3862    pub document: Option<serde_json::Value>,
3863}
3864impl std::fmt::Display for PatchDocumentSignatureFollowUpContext {
3865    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3866        write!(f, "{}", serde_json::to_string(self).unwrap())
3867    }
3868}
3869#[derive(Debug, Serialize, Deserialize)]
3870pub struct DocumentSignatureFollowUpContext {
3871    #[serde(rename = "document")]
3872    pub document: serde_json::Value,
3873}
3874impl std::fmt::Display for DocumentSignatureFollowUpContext {
3875    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3876        write!(f, "{}", serde_json::to_string(self).unwrap())
3877    }
3878}
3879#[derive(Debug, Serialize, Deserialize)]
3880pub struct PatchReviewDocumentsFollowUpContext {
3881    #[serde(rename = "title")]
3882    ///Review documents follow-up display title.
3883    pub title: Option<String>,
3884}
3885impl std::fmt::Display for PatchReviewDocumentsFollowUpContext {
3886    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3887        write!(f, "{}", serde_json::to_string(self).unwrap())
3888    }
3889}
3890#[derive(Debug, Serialize, Deserialize)]
3891pub struct ReviewDocumentsFollowUpContext {
3892    #[serde(rename = "partyId")]
3893    pub party_id: String,
3894    #[serde(rename = "documents")]
3895    pub documents: Vec<serde_json::Value>,
3896    #[serde(rename = "title")]
3897    ///Review documents follow-up display title.
3898    pub title: Option<String>,
3899}
3900impl std::fmt::Display for ReviewDocumentsFollowUpContext {
3901    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3902        write!(f, "{}", serde_json::to_string(self).unwrap())
3903    }
3904}
3905#[derive(Debug, Serialize, Deserialize)]
3906pub struct PatchPaymentCollectionFollowUpContext {
3907    #[serde(rename = "lineItems")]
3908    pub line_items: Option<Vec<PaymentCollectionLineItem>>,
3909    #[serde(rename = "title")]
3910    ///Payment collection follow-up display title.
3911    pub title: Option<String>,
3912}
3913impl std::fmt::Display for PatchPaymentCollectionFollowUpContext {
3914    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3915        write!(f, "{}", serde_json::to_string(self).unwrap())
3916    }
3917}
3918#[derive(Debug, Serialize, Deserialize)]
3919pub struct PaymentCollectionFollowUpContext {
3920    #[serde(rename = "partyId")]
3921    pub party_id: String,
3922    #[serde(rename = "lineItems")]
3923    pub line_items: Vec<PaymentCollectionLineItem>,
3924    #[serde(rename = "title")]
3925    ///Payment collection follow-up display title.
3926    pub title: Option<String>,
3927}
3928impl std::fmt::Display for PaymentCollectionFollowUpContext {
3929    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3930        write!(f, "{}", serde_json::to_string(self).unwrap())
3931    }
3932}
3933#[derive(Debug, Serialize, Deserialize)]
3934pub struct PaymentCollectionTitle(pub String);
3935#[derive(Debug, Serialize, Deserialize)]
3936pub struct PaymentCollectionLineItem {
3937    #[serde(rename = "title")]
3938    pub title: String,
3939    #[serde(rename = "value")]
3940    pub value: f64,
3941}
3942impl std::fmt::Display for PaymentCollectionLineItem {
3943    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3944        write!(f, "{}", serde_json::to_string(self).unwrap())
3945    }
3946}
3947#[derive(Debug, Serialize, Deserialize)]
3948pub struct DocumentFollowUpSubContext(pub Vec<serde_json::Value>);
3949#[derive(Debug, Serialize, Deserialize)]
3950pub struct PostTaxReturnFollowUpContext {
3951    #[serde(rename = "partyId")]
3952    pub party_id: String,
3953    #[serde(rename = "taxReturnYear")]
3954    pub tax_return_year: f64,
3955}
3956impl std::fmt::Display for PostTaxReturnFollowUpContext {
3957    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3958        write!(f, "{}", serde_json::to_string(self).unwrap())
3959    }
3960}
3961#[derive(Debug, Serialize, Deserialize)]
3962pub struct TaxReturnFollowUpContext {}
3963impl std::fmt::Display for TaxReturnFollowUpContext {
3964    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3965        write!(f, "{}", serde_json::to_string(self).unwrap())
3966    }
3967}
3968#[derive(Debug, Serialize, Deserialize)]
3969pub struct PostTaxTranscriptsFollowUpContext {
3970    #[serde(rename = "partyId")]
3971    pub party_id: String,
3972    #[serde(rename = "taxTranscriptYears")]
3973    pub tax_transcript_years: Option<Vec<f64>>,
3974}
3975impl std::fmt::Display for PostTaxTranscriptsFollowUpContext {
3976    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3977        write!(f, "{}", serde_json::to_string(self).unwrap())
3978    }
3979}
3980#[derive(Debug, Serialize, Deserialize)]
3981pub struct TaxTranscriptsFollowUpContext {}
3982impl std::fmt::Display for TaxTranscriptsFollowUpContext {
3983    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3984        write!(f, "{}", serde_json::to_string(self).unwrap())
3985    }
3986}
3987#[derive(Debug, Serialize, Deserialize)]
3988pub struct PostW2FollowUpContext {
3989    #[serde(rename = "partyId")]
3990    pub party_id: String,
3991    #[serde(rename = "w2Year")]
3992    pub w2_year: f64,
3993}
3994impl std::fmt::Display for PostW2FollowUpContext {
3995    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
3996        write!(f, "{}", serde_json::to_string(self).unwrap())
3997    }
3998}
3999#[derive(Debug, Serialize, Deserialize)]
4000pub struct W2FollowUpContext {
4001    #[serde(rename = "partyId")]
4002    pub party_id: String,
4003    #[serde(rename = "w2Year")]
4004    pub w2_year: Option<f64>,
4005}
4006impl std::fmt::Display for W2FollowUpContext {
4007    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4008        write!(f, "{}", serde_json::to_string(self).unwrap())
4009    }
4010}
4011#[derive(Debug, Serialize, Deserialize)]
4012pub struct SystemFollowUpContext {
4013    #[serde(rename = "partyId")]
4014    pub party_id: String,
4015    #[serde(rename = "description")]
4016    pub description: Option<String>,
4017}
4018impl std::fmt::Display for SystemFollowUpContext {
4019    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4020        write!(f, "{}", serde_json::to_string(self).unwrap())
4021    }
4022}
4023#[derive(Debug, Serialize, Deserialize)]
4024pub enum FollowUpStatus {
4025    #[serde(rename = "REQUESTED")]
4026    Requested,
4027    #[serde(rename = "IN_PROGRESS")]
4028    InProgress,
4029    #[serde(rename = "COMPLETED")]
4030    Completed,
4031    #[serde(rename = "COMPLETED_EXTERNALLY")]
4032    CompletedExternally,
4033    #[serde(rename = "PENDING_REVIEW")]
4034    PendingReview,
4035    #[serde(rename = "REJECTED")]
4036    Rejected,
4037}
4038#[derive(Debug, Serialize, Deserialize)]
4039pub enum PostFollowUpType {
4040    #[serde(rename = "DOCUMENT_REQUEST")]
4041    DocumentRequest,
4042    #[serde(rename = "DOCUMENT_SIGNATURE")]
4043    DocumentSignature,
4044    #[serde(rename = "ASSET_STATEMENTS")]
4045    AssetStatements,
4046    #[serde(rename = "PAYMENT_COLLECTION")]
4047    PaymentCollection,
4048    #[serde(rename = "PAYSTUBS")]
4049    Paystubs,
4050    #[serde(rename = "REVIEW_DOCUMENTS")]
4051    ReviewDocuments,
4052    #[serde(rename = "TAX_RETURN")]
4053    TaxReturn,
4054    #[serde(rename = "TAX_TRANSCRIPTS")]
4055    TaxTranscripts,
4056    #[serde(rename = "W2")]
4057    W2,
4058}
4059#[derive(Debug, Serialize, Deserialize)]
4060pub enum FollowUpType {
4061    #[serde(rename = "DOCUMENT_REQUEST")]
4062    DocumentRequest,
4063    #[serde(rename = "DOCUMENT_SIGNATURE")]
4064    DocumentSignature,
4065    #[serde(rename = "DOCUMENT_WET_SIGNATURE")]
4066    DocumentWetSignature,
4067    #[serde(rename = "ASSET_STATEMENTS")]
4068    AssetStatements,
4069    #[serde(rename = "PAYMENT_COLLECTION")]
4070    PaymentCollection,
4071    #[serde(rename = "PAYSTUBS")]
4072    Paystubs,
4073    #[serde(rename = "REVIEW_DOCUMENTS")]
4074    ReviewDocuments,
4075    #[serde(rename = "TAX_RETURN")]
4076    TaxReturn,
4077    #[serde(rename = "TAX_TRANSCRIPTS")]
4078    TaxTranscripts,
4079    #[serde(rename = "W2")]
4080    W2,
4081    #[serde(rename = "SYSTEM")]
4082    System,
4083}
4084#[derive(Debug, Serialize, Deserialize)]
4085pub enum PostDocumentType {
4086    #[serde(rename = "1003")]
4087    PostDocumentType1003,
4088    #[serde(rename = "4506t")]
4089    PostDocumentType4506T,
4090    #[serde(rename = "ACHDEBIT_AUTHORIZATION")]
4091    AchdebitAuthorization,
4092    #[serde(rename = "ADDRESS_VERIFICATION")]
4093    AddressVerification,
4094    #[serde(rename = "AFFILIATED_BUSINESS_ARRANGEMENT_DISCLOSURE")]
4095    AffiliatedBusinessArrangementDisclosure,
4096    #[serde(rename = "ALIMONY_INCOME")]
4097    AlimonyIncome,
4098    #[serde(rename = "ALIMONY_LIABILITY")]
4099    AlimonyLiability,
4100    #[serde(rename = "APPRAISAL")]
4101    Appraisal,
4102    #[serde(rename = "APPRAISAL_WAIVER")]
4103    AppraisalWaiver,
4104    #[serde(rename = "ARTICLES_OF_INCORPORATION")]
4105    ArticlesOfIncorporation,
4106    #[serde(rename = "BANKRUPTCY_DISCHARGE_NOTICE")]
4107    BankruptcyDischargeNotice,
4108    #[serde(rename = "BANKRUPTCY_FILING")]
4109    BankruptcyFiling,
4110    #[serde(rename = "BANK_DEPOSIT_SLIP")]
4111    BankDepositSlip,
4112    #[serde(rename = "BANK_STATEMENT")]
4113    BankStatement,
4114    #[serde(rename = "BANK_STATEMENT:_MUTUAL_FUND_ACCOUNT")]
4115    BankStatementMutualFundAccount,
4116    #[serde(rename = "BANK_STATEMENT:_STOCK_ACCOUNT")]
4117    BankStatementStockAccount,
4118    #[serde(rename = "BIRTH_CERTIFICATE")]
4119    BirthCertificate,
4120    #[serde(rename = "BONUS_AND_COMMISSION_DOCUMENTATION")]
4121    BonusAndCommissionDocumentation,
4122    #[serde(rename = "BORROWER_CERTIFICATION")]
4123    BorrowerCertification,
4124    #[serde(rename = "BORROWER_CONSENT_FORM")]
4125    BorrowerConsentForm,
4126    #[serde(rename = "BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION")]
4127    BorrowerCorrespondenceLetterOfExplanation,
4128    #[serde(rename = "BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION_CASHOUT")]
4129    BorrowerCorrespondenceLetterOfExplanationCashout,
4130    #[serde(rename = "BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION_OCCUPANCY")]
4131    BorrowerCorrespondenceLetterOfExplanationOccupancy,
4132    #[serde(rename = "BORROWER_INCOME_VERIFICATION_CONSENT_FORM")]
4133    BorrowerIncomeVerificationConsentForm,
4134    #[serde(rename = "BUSINESS_LICENSE")]
4135    BusinessLicense,
4136    #[serde(rename = "BYLAWS_OPERATING_AGREEMENT")]
4137    BylawsOperatingAgreement,
4138    #[serde(rename = "CHILD_SUPPORT_INCOME")]
4139    ChildSupportIncome,
4140    #[serde(rename = "CHILD_SUPPORT_LIABILITY")]
4141    ChildSupportLiability,
4142    #[serde(rename = "CLOSING_DISCLOSURE")]
4143    ClosingDisclosure,
4144    #[serde(rename = "COSIGNED_LIABILITY")]
4145    CosignedLiability,
4146    #[serde(rename = "CREDIT_CARD_AUTHORIZATION")]
4147    CreditCardAuthorization,
4148    #[serde(rename = "CREDIT_REPORT")]
4149    CreditReport,
4150    #[serde(rename = "DD_214")]
4151    Dd214,
4152    #[serde(rename = "DEATH_CERTIFICATE")]
4153    DeathCertificate,
4154    #[serde(rename = "DIVORCE_DECREE")]
4155    DivorceDecree,
4156    #[serde(rename = "EARNEST_MONEY_DEPOSIT")]
4157    EarnestMoneyDeposit,
4158    #[serde(rename = "EMPLOYMENT_CONTRACT")]
4159    EmploymentContract,
4160    #[serde(rename = "EMPLOYMENT_OFFER_LETTER")]
4161    EmploymentOfferLetter,
4162    #[serde(rename = "ESCROW_WAIVER")]
4163    EscrowWaiver,
4164    #[serde(rename = "FAIR_LENDING_NOTICE")]
4165    FairLendingNotice,
4166    #[serde(rename = "FINANCIAL_STATEMENT:_BALANCE_SHEET")]
4167    FinancialStatementBalanceSheet,
4168    #[serde(rename = "FINANCIAL_STATEMENT:_INCOME")]
4169    FinancialStatementIncome,
4170    #[serde(rename = "FLOOD_CERTIFICATION")]
4171    FloodCertification,
4172    #[serde(rename = "FLOOD_HAZARD_NOTICE")]
4173    FloodHazardNotice,
4174    #[serde(rename = "FOR_YOUR_PROTECTION_HOME_INSPECTION")]
4175    ForYourProtectionHomeInspection,
4176    #[serde(rename = "GENERAL_LOAN_ACKNOWLEDGMENT")]
4177    GeneralLoanAcknowledgment,
4178    #[serde(rename = "GENERATED_ASSET_STATEMENT")]
4179    GeneratedAssetStatement,
4180    #[serde(rename = "GIFT_LETTER")]
4181    GiftLetter,
4182    #[serde(rename = "GOOD_FAITH_ESTIMATE")]
4183    GoodFaithEstimate,
4184    #[serde(rename = "HOA_BILL")]
4185    HoaBill,
4186    #[serde(rename = "HOMEOWNERS_ASSOCIATION_CERTIFICATION")]
4187    HomeownersAssociationCertification,
4188    #[serde(rename = "HOME_INSPECTION_REPORT")]
4189    HomeInspectionReport,
4190    #[serde(rename = "HUD_VA_ADDENDUM")]
4191    HudVaAddendum,
4192    #[serde(rename = "IMPORTANT_NOTICE_TO_HOMEBUYER")]
4193    ImportantNoticeToHomebuyer,
4194    #[serde(rename = "INSURANCE_AGENT_CONTACT_INFO")]
4195    InsuranceAgentContactInfo,
4196    #[serde(rename = "INTENT_TO_PROCEED")]
4197    IntentToProceed,
4198    #[serde(rename = "INVOICE_UTILITY_BILL")]
4199    InvoiceUtilityBill,
4200    #[serde(rename = "IRS1041")]
4201    Irs1041,
4202    #[serde(rename = "IRS1065")]
4203    Irs1065,
4204    #[serde(rename = "IRS1099")]
4205    Irs1099,
4206    #[serde(rename = "IRS1120")]
4207    Irs1120,
4208    #[serde(rename = "IRS1120_S")]
4209    Irs1120S,
4210    #[serde(rename = "JUDGMENT")]
4211    Judgment,
4212    #[serde(rename = "K1")]
4213    K1,
4214    #[serde(rename = "LETTER_OF_EXPLANATION:_ADDRESS_VERIFICATION")]
4215    LetterOfExplanationAddressVerification,
4216    #[serde(rename = "LETTER_OF_EXPLANATION:_CREDIT_INQUIRY")]
4217    LetterOfExplanationCreditInquiry,
4218    #[serde(rename = "LETTER_OF_EXPLANATION:_DEROGATORY_CREDIT")]
4219    LetterOfExplanationDerogatoryCredit,
4220    #[serde(rename = "LETTER_OF_EXPLANATION:_JOB_GAP")]
4221    LetterOfExplanationJobGap,
4222    #[serde(rename = "LETTER_OF_EXPLANATION:_LARGE_DEPOSITS")]
4223    LetterOfExplanationLargeDeposits,
4224    #[serde(rename = "LETTER_OF_EXPLANATION_NAME_VARIATION")]
4225    LetterOfExplanationNameVariation,
4226    #[serde(rename = "LETTER_OF_EXPLANATION:SHORT_SALE")]
4227    LetterOfExplanationShortSale,
4228    #[serde(rename = "LLC_BTR_DOC")]
4229    LlcBtrDoc,
4230    #[serde(rename = "LOAN_ESTIMATE")]
4231    LoanEstimate,
4232    #[serde(rename = "MARRIAGE_CERTIFICATE")]
4233    MarriageCertificate,
4234    #[serde(rename = "MEDICAL_LICENSE_DIPLOMA")]
4235    MedicalLicenseDiploma,
4236    #[serde(rename = "MEDICAL_RESIDENCY_FELLOWSHIP")]
4237    MedicalResidencyFellowship,
4238    #[serde(rename = "MORTGAGE_STATEMENT")]
4239    MortgageStatement,
4240    #[serde(rename = "NATIONAL_IDENTIFICATION")]
4241    NationalIdentification,
4242    #[serde(rename = "NATIONAL_IDENTIFICATION:_SOCIAL_SECURITY_CARD")]
4243    NationalIdentificationSocialSecurityCard,
4244    #[serde(rename = "NATIONAL_IDENTIFICATION_NON_PERMANENT_RESIDENT")]
4245    NationalIdentificationNonPermanentResident,
4246    #[serde(rename = "NEAREST_LIVING_RELATIVE")]
4247    NearestLivingRelative,
4248    #[serde(rename = "NOTE")]
4249    Note,
4250    #[serde(rename = "OCCUPANCY_CERTIFICATION")]
4251    OccupancyCertification,
4252    #[serde(rename = "OTHER")]
4253    Other,
4254    #[serde(rename = "PASSPORT")]
4255    Passport,
4256    #[serde(rename = "PAYOFF_STATEMENT")]
4257    PayoffStatement,
4258    #[serde(rename = "PERMANENT_RESIDENT_IDENTIFICATION")]
4259    PermanentResidentIdentification,
4260    #[serde(rename = "PEST_INSPECTION_REPORT")]
4261    PestInspectionReport,
4262    #[serde(rename = "POOL_INSPECTION_REPORT")]
4263    PoolInspectionReport,
4264    #[serde(rename = "POWER_OF_ATTORNEY")]
4265    PowerOfAttorney,
4266    #[serde(rename = "PRE_APPROVAL_LETTER")]
4267    PreApprovalLetter,
4268    #[serde(rename = "PRE_APPROVAL_LETTER:_PREVIEW")]
4269    PreApprovalLetterPreview,
4270    #[serde(rename = "PROOF_OF_LIQUIDATION")]
4271    ProofOfLiquidation,
4272    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_CONDOMINIUM")]
4273    PropertyInsurancePolicyCondominium,
4274    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_FLOOD")]
4275    PropertyInsurancePolicyFlood,
4276    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_GENERAL")]
4277    PropertyInsurancePolicyGeneral,
4278    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_HAZARD")]
4279    PropertyInsurancePolicyHazard,
4280    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_HOMEOWNERS")]
4281    PropertyInsurancePolicyHomeowners,
4282    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_HURRICANE")]
4283    PropertyInsurancePolicyHurricane,
4284    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_INSECT_INFESTATION")]
4285    PropertyInsurancePolicyInsectInfestation,
4286    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_LEASEHOLD")]
4287    PropertyInsurancePolicyLeasehold,
4288    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_MASTERPOLICY_ASSN")]
4289    PropertyInsurancePolicyMasterpolicyAssn,
4290    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_MINE_SUBSIDENCE")]
4291    PropertyInsurancePolicyMineSubsidence,
4292    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_PERSONAL_PROPERTY")]
4293    PropertyInsurancePolicyPersonalProperty,
4294    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_STORM")]
4295    PropertyInsurancePolicyStorm,
4296    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_TORNADO")]
4297    PropertyInsurancePolicyTornado,
4298    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_VOLCANO")]
4299    PropertyInsurancePolicyVolcano,
4300    #[serde(rename = "PROPERTY_INSURANCE_POLICY:_WIND")]
4301    PropertyInsurancePolicyWind,
4302    #[serde(rename = "PROPERTY_TAX_BILL")]
4303    PropertyTaxBill,
4304    #[serde(rename = "PURCHASE_AGREEMENT")]
4305    PurchaseAgreement,
4306    #[serde(rename = "PURCHASE_AGREEMENT_ADDENDUM")]
4307    PurchaseAgreementAddendum,
4308    #[serde(rename = "RATE_LOCK_AGREEMENT")]
4309    RateLockAgreement,
4310    #[serde(rename = "RENTAL_AGREEMENT")]
4311    RentalAgreement,
4312    #[serde(rename = "RENTAL_INCOME_PROOF_OF_RECEIPT")]
4313    RentalIncomeProofOfReceipt,
4314    #[serde(rename = "RENTAL_SECURITY_DEPOSIT")]
4315    RentalSecurityDeposit,
4316    #[serde(rename = "REQUEST_FOR_COPY_OF_TAX_RETURN:_IRS4506_T")]
4317    RequestForCopyOfTaxReturnIrs4506T,
4318    #[serde(rename = "RESIDUAL_INCOME_LETTER")]
4319    ResidualIncomeLetter,
4320    #[serde(rename = "RETIREMENT_ACCOUNT_STATEMENT")]
4321    RetirementAccountStatement,
4322    #[serde(rename = "RETIREMENT_AWARD_LETTER")]
4323    RetirementAwardLetter,
4324    #[serde(rename = "RETIREMENT_LIQUIDITY_TERMS")]
4325    RetirementLiquidityTerms,
4326    #[serde(rename = "ROOF_INSPECTION_REPORT")]
4327    RoofInspectionReport,
4328    #[serde(rename = "SATISFACTION_OF_SECURITY_INSTRUMENT_LIEN_RELEASE")]
4329    SatisfactionOfSecurityInstrumentLienRelease,
4330    #[serde(rename = "SETTLEMENT_STATEMENT_HUD1")]
4331    SettlementStatementHud1,
4332    #[serde(rename = "SOCIAL_SECURITY_PROOF_OF_RECEIPT")]
4333    SocialSecurityProofOfReceipt,
4334    #[serde(rename = "STATEMENT_CREDIT_CARD_OR_INSTALLMENT_ACCT")]
4335    StatementCreditCardOrInstallmentAcct,
4336    #[serde(rename = "TAX_TRANSCRIPT")]
4337    TaxTranscript,
4338    #[serde(rename = "TRUST_AGREEMENT")]
4339    TrustAgreement,
4340    #[serde(rename = "VA_AWARD_LETTER")]
4341    VaAwardLetter,
4342    #[serde(rename = "VA_CHILD_CARE_CERTIFICATE")]
4343    VaChildCareCertificate,
4344    #[serde(rename = "VA_CERTIFICATE_OF_ELIGIBILITY")]
4345    VaCertificateOfEligibility,
4346    #[serde(rename = "VA_STATEMENT_OF_SERVICE")]
4347    VaStatementOfService,
4348    #[serde(rename = "VERIFICATION_OF_MORTGAGE")]
4349    VerificationOfMortgage,
4350    #[serde(rename = "VERIFICATION_OF_RENT")]
4351    VerificationOfRent,
4352    #[serde(rename = "VERIFICATION_OF_SSN")]
4353    VerificationOfSsn,
4354    #[serde(rename = "VISA")]
4355    Visa,
4356}
4357#[derive(Debug, Serialize, Deserialize)]
4358pub struct FollowUpComments(pub String);
4359#[derive(Debug, Serialize, Deserialize)]
4360pub struct FollowUpClientFollowUpReferenceId(pub String);
4361#[derive(Debug, Serialize, Deserialize)]
4362pub struct FollowUpDueDate(pub String);
4363#[derive(Debug, Serialize, Deserialize)]
4364pub struct AssetsSummarySchema {
4365    #[serde(rename = "accounts")]
4366    pub accounts: Vec<AssetsAccountSummarySchema>,
4367}
4368impl std::fmt::Display for AssetsSummarySchema {
4369    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4370        write!(f, "{}", serde_json::to_string(self).unwrap())
4371    }
4372}
4373#[derive(Debug, Serialize, Deserialize)]
4374pub struct AssetsAccountSummarySchema {
4375    #[serde(rename = "id")]
4376    ///The UUID of the an Asset account in Blend's system.
4377    pub id: String,
4378    #[serde(rename = "partyIds")]
4379    ///Ids of parties that own this account, as stated in the application. This is not guaranteed to match account ownership data retrieved from data providers for Connected Assets.
4380    pub party_ids: Vec<String>,
4381    #[serde(rename = "institutionName")]
4382    ///The name of the financial institution that holds this account.
4383    pub institution_name: String,
4384    #[serde(rename = "accountType")]
4385    ///The type of an asset account
4386    pub account_type: String,
4387    #[serde(rename = "accountNumberLastFour")]
4388    ///The last four digits of the account number.
4389    pub account_number_last_four: String,
4390    #[serde(rename = "connectionStatus")]
4391    /**Connection Status of an Assets account
4392* **CONNECTED** - This account was originally connected to through a data provider. Refreshes will result in us attempting to pull updated data from our data provider and generating an updated Asset statement. We may also attempt to pull an Asset statement from the financial institution directly.
4393* **NOT_CONNECTED** - This account was originally not connected to. Refreshes will result in us issuing an Account Statements follow-up
4394* **LOCKED** - This account was originally connected to while using multi-factor authentication. Refreshes will result in us issuing an Updated Assets follow-up for the owner to re-connect.
4395*/
4396    pub connection_status: String,
4397    #[serde(rename = "lastRefresh")]
4398    ///Summary of last Assets refresh attempt for this account. This will be omitted from accounts we have not completed a refresh for. If a refresh is in progress, this will be omitted until the refresh has completed.
4399    pub last_refresh: Option<serde_json::Value>,
4400}
4401impl std::fmt::Display for AssetsAccountSummarySchema {
4402    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4403        write!(f, "{}", serde_json::to_string(self).unwrap())
4404    }
4405}
4406#[derive(Debug, Serialize, Deserialize)]
4407pub enum AssetAccountType {
4408    #[serde(rename = "Checking")]
4409    Checking,
4410    #[serde(rename = "Brokerage")]
4411    Brokerage,
4412    #[serde(rename = "Retirement")]
4413    Retirement,
4414    #[serde(rename = "Savings")]
4415    Savings,
4416    #[serde(rename = "Trust")]
4417    Trust,
4418    #[serde(rename = "Certificate of Deposit")]
4419    CertificateOfDeposit,
4420    #[serde(rename = "Money Market")]
4421    MoneyMarket,
4422    #[serde(rename = "Annuity")]
4423    Annuity,
4424    #[serde(rename = "Other")]
4425    Other,
4426    #[serde(rename = "Unknown")]
4427    Unknown,
4428    #[serde(rename = "Mutual Fund")]
4429    MutualFund,
4430    #[serde(rename = "Stocks")]
4431    Stocks,
4432    #[serde(rename = "Stock Options")]
4433    StockOptions,
4434    #[serde(rename = "Bonds")]
4435    Bonds,
4436    #[serde(rename = "Bridge Loan Proceeds")]
4437    BridgeLoanProceeds,
4438    #[serde(rename = "Individual Development Account")]
4439    IndividualDevelopmentAccount,
4440    #[serde(rename = "Cash Value of Life Insurance")]
4441    CashValueOfLifeInsurance,
4442    #[serde(rename = "Chequing")]
4443    Chequing,
4444    #[serde(rename = "Stocks/Bond/Mutual")]
4445    StocksBondMutual,
4446    #[serde(rename = "RRSP")]
4447    Rrsp,
4448}
4449#[derive(Debug, Serialize, Deserialize)]
4450pub enum ConnectionStatusType {
4451    #[serde(rename = "CONNECTED")]
4452    Connected,
4453    #[serde(rename = "NOT_CONNECTED")]
4454    NotConnected,
4455    #[serde(rename = "LOCKED")]
4456    Locked,
4457}
4458#[derive(Debug, Serialize, Deserialize)]
4459pub enum AccountRefreshStatusType {
4460    #[serde(rename = "GAS_GENERATED")]
4461    GasGenerated,
4462    #[serde(rename = "FINANCIAL_STATEMENT_PULLED")]
4463    FinancialStatementPulled,
4464    #[serde(rename = "UPDATED_ASSETS_FOLLOW_UP_ISSUED")]
4465    UpdatedAssetsFollowUpIssued,
4466    #[serde(rename = "MANUAL_UPLOAD_FOLLOW_UP_ISSUED")]
4467    ManualUploadFollowUpIssued,
4468    #[serde(rename = "ERROR")]
4469    Error,
4470}
4471#[derive(Debug, Serialize, Deserialize)]
4472pub struct TaxTranscriptsSchema {
4473    #[serde(rename = "years")]
4474    ///List of years associated with 4506T form
4475    pub years: Option<Vec<f64>>,
4476    #[serde(rename = "filingStatus")]
4477    ///Filing status
4478    pub filing_status: Option<String>,
4479    #[serde(rename = "filingAddress")]
4480    pub filing_address: Option<AddressSchema>,
4481    #[serde(rename = "filers")]
4482    pub filers: Option<Vec<TaxTranscriptFilerSchema>>,
4483}
4484impl std::fmt::Display for TaxTranscriptsSchema {
4485    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4486        write!(f, "{}", serde_json::to_string(self).unwrap())
4487    }
4488}
4489#[derive(Debug, Serialize, Deserialize)]
4490pub struct TaxTranscriptFilerSchema {
4491    #[serde(rename = "partyId")]
4492    ///The UUID of the party in Blend's system. Equivalent to borrowerId
4493    pub party_id: Option<String>,
4494    #[serde(rename = "name")]
4495    pub name: NameSchema,
4496}
4497impl std::fmt::Display for TaxTranscriptFilerSchema {
4498    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4499        write!(f, "{}", serde_json::to_string(self).unwrap())
4500    }
4501}
4502#[derive(Debug, Serialize, Deserialize)]
4503pub enum PackageType {
4504    #[serde(rename = "CLOSING_DISCLOSURE")]
4505    ClosingDisclosure,
4506    #[serde(rename = "CLOSING_PACKAGE")]
4507    ClosingPackage,
4508    #[serde(rename = "DOCUMENT_PACKAGE")]
4509    DocumentPackage,
4510    #[serde(rename = "INITIAL_LOAN_ESTIMATE")]
4511    InitialLoanEstimate,
4512    #[serde(rename = "OTHER_DISCLOSURE")]
4513    OtherDisclosure,
4514    #[serde(rename = "REVISED_CLOSING_DISCLOSURE")]
4515    RevisedClosingDisclosure,
4516    #[serde(rename = "REVISED_LOAN_ESTIMATE")]
4517    RevisedLoanEstimate,
4518}
4519#[derive(Debug, Serialize, Deserialize)]
4520pub struct PackagePostSchema {
4521    #[serde(rename = "applicationId")]
4522    ///The Blend application UUID
4523    pub application_id: String,
4524    #[serde(rename = "description")]
4525    ///An optional description of the package
4526    pub description: Option<String>,
4527    #[serde(rename = "dueDate")]
4528    ///The ISO timestamp of when the package is due
4529    pub due_date: Option<String>,
4530    #[serde(rename = "envelopes")]
4531    ///An envelope describes the signing strategy and the recipient assignment within the package.
4532    pub envelopes: Vec<serde_json::Value>,
4533    #[serde(rename = "foreignPackageId")]
4534    ///External package id provided by partner
4535    pub foreign_package_id: Option<String>,
4536    #[serde(rename = "initiatedByLenderId")]
4537    pub initiated_by_lender_id: Option<String>,
4538    #[serde(rename = "name")]
4539    ///An optional name for the package
4540    pub name: Option<String>,
4541    #[serde(rename = "type")]
4542    ///Package type
4543    pub type_: String,
4544}
4545impl std::fmt::Display for PackagePostSchema {
4546    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4547        write!(f, "{}", serde_json::to_string(self).unwrap())
4548    }
4549}
4550#[derive(Debug, Serialize, Deserialize)]
4551pub struct IframeSignEnvelopePostSchema {
4552    #[serde(rename = "providerType")]
4553    pub provider_type: String,
4554    #[serde(rename = "recipients")]
4555    pub recipients: Vec<IframesignEnvelopesRecipientPostSchema>,
4556}
4557impl std::fmt::Display for IframeSignEnvelopePostSchema {
4558    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4559        write!(f, "{}", serde_json::to_string(self).unwrap())
4560    }
4561}
4562#[derive(Debug, Serialize, Deserialize)]
4563pub struct WetsignEnvelopePostSchema {
4564    #[serde(rename = "providerType")]
4565    pub provider_type: String,
4566    #[serde(rename = "recipients")]
4567    pub recipients: Vec<WetsignEnvelopesRecipientPostSchema>,
4568}
4569impl std::fmt::Display for WetsignEnvelopePostSchema {
4570    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4571        write!(f, "{}", serde_json::to_string(self).unwrap())
4572    }
4573}
4574#[derive(Debug, Serialize, Deserialize)]
4575pub struct DocgenEnvelopePostSchema {
4576    #[serde(rename = "providerType")]
4577    pub provider_type: String,
4578    #[serde(rename = "recipients")]
4579    pub recipients: Vec<DocgenEnvelopesRecipientPostSchema>,
4580    #[serde(rename = "signatureRequired")]
4581    pub signature_required: bool,
4582}
4583impl std::fmt::Display for DocgenEnvelopePostSchema {
4584    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4585        write!(f, "{}", serde_json::to_string(self).unwrap())
4586    }
4587}
4588#[derive(Debug, Serialize, Deserialize)]
4589pub struct ESignEnvelopePostSchema {
4590    #[serde(rename = "providerType")]
4591    pub provider_type: String,
4592    #[serde(rename = "recipients")]
4593    pub recipients: Vec<ESignEnvelopesRecipientPostSchema>,
4594}
4595impl std::fmt::Display for ESignEnvelopePostSchema {
4596    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4597        write!(f, "{}", serde_json::to_string(self).unwrap())
4598    }
4599}
4600#[derive(Debug, Serialize, Deserialize)]
4601pub struct ReviewEnvelopePostSchema {
4602    #[serde(rename = "providerType")]
4603    pub provider_type: String,
4604    #[serde(rename = "recipients")]
4605    pub recipients: Vec<ReviewEnvelopeRecipientPostSchema>,
4606}
4607impl std::fmt::Display for ReviewEnvelopePostSchema {
4608    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4609        write!(f, "{}", serde_json::to_string(self).unwrap())
4610    }
4611}
4612#[derive(Debug, Serialize, Deserialize)]
4613pub struct OfferEnvelopePostSchema {
4614    #[serde(rename = "providerType")]
4615    pub provider_type: String,
4616    #[serde(rename = "recipients")]
4617    pub recipients: Vec<OfferEnvelopeRecipientPostSchema>,
4618}
4619impl std::fmt::Display for OfferEnvelopePostSchema {
4620    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4621        write!(f, "{}", serde_json::to_string(self).unwrap())
4622    }
4623}
4624#[derive(Debug, Serialize, Deserialize)]
4625pub struct EnvelopesRecipientPostSchema {
4626    #[serde(rename = "partyId")]
4627    ///The Blend party UUID
4628    pub party_id: String,
4629}
4630impl std::fmt::Display for EnvelopesRecipientPostSchema {
4631    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4632        write!(f, "{}", serde_json::to_string(self).unwrap())
4633    }
4634}
4635#[derive(Debug, Serialize, Deserialize)]
4636pub enum RecipientPartyType {
4637    #[serde(rename = "BORROWER")]
4638    Borrower,
4639    #[serde(rename = "LENDER")]
4640    Lender,
4641    #[serde(rename = "NON_APPLICANT_USER")]
4642    NonApplicantUser,
4643    #[serde(rename = "OTHER")]
4644    Other,
4645    #[serde(rename = "SETTLOR")]
4646    Settlor,
4647    #[serde(rename = "SPOUSE")]
4648    Spouse,
4649    #[serde(rename = "TITLE_HOLDER")]
4650    TitleHolder,
4651}
4652#[derive(Debug, Serialize, Deserialize)]
4653pub enum RecipientStatus {
4654    #[serde(rename = "DECLINED")]
4655    Declined,
4656    #[serde(rename = "HAS_NOT_VIEWED")]
4657    HasNotViewed,
4658    #[serde(rename = "SIGNED")]
4659    Signed,
4660    #[serde(rename = "VIEWED")]
4661    Viewed,
4662}
4663#[derive(Debug, Serialize, Deserialize)]
4664pub struct DocgenEnvelopesRecipientPostSchema {
4665    #[serde(rename = "metadata")]
4666    pub metadata: DocgenMeatadataSchema,
4667    #[serde(rename = "partyId")]
4668    pub party_id: String,
4669}
4670impl std::fmt::Display for DocgenEnvelopesRecipientPostSchema {
4671    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4672        write!(f, "{}", serde_json::to_string(self).unwrap())
4673    }
4674}
4675#[derive(Debug, Serialize, Deserialize)]
4676pub struct DocgenMeatadataSchema {
4677    #[serde(rename = "docLink")]
4678    pub doc_link: String,
4679}
4680impl std::fmt::Display for DocgenMeatadataSchema {
4681    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4682        write!(f, "{}", serde_json::to_string(self).unwrap())
4683    }
4684}
4685#[derive(Debug, Serialize, Deserialize)]
4686pub struct ESignEnvelopesRecipientPostSchema {
4687    #[serde(rename = "metadata")]
4688    pub metadata: EsignMetadataSchema,
4689    #[serde(rename = "partyId")]
4690    ///The Blend party UUID, but for lender recipients, the partyId must be set to 'LENDER'.
4691    pub party_id: String,
4692}
4693impl std::fmt::Display for ESignEnvelopesRecipientPostSchema {
4694    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4695        write!(f, "{}", serde_json::to_string(self).unwrap())
4696    }
4697}
4698#[derive(Debug, Serialize, Deserialize)]
4699pub struct IframesignEnvelopesRecipientPostSchema {
4700    #[serde(rename = "metadata")]
4701    pub metadata: IfamesignPostMetadataSchema,
4702    #[serde(rename = "partyId")]
4703    pub party_id: String,
4704}
4705impl std::fmt::Display for IframesignEnvelopesRecipientPostSchema {
4706    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4707        write!(f, "{}", serde_json::to_string(self).unwrap())
4708    }
4709}
4710#[derive(Debug, Serialize, Deserialize)]
4711pub struct WetsignEnvelopesRecipientPostSchema {
4712    #[serde(rename = "metadata")]
4713    pub metadata: WetsignPostMetadataSchema,
4714    #[serde(rename = "partyId")]
4715    pub party_id: String,
4716}
4717impl std::fmt::Display for WetsignEnvelopesRecipientPostSchema {
4718    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4719        write!(f, "{}", serde_json::to_string(self).unwrap())
4720    }
4721}
4722#[derive(Debug, Serialize, Deserialize)]
4723pub struct ReviewEnvelopeRecipientPostSchema {
4724    #[serde(rename = "metadata")]
4725    pub metadata: ReviewPostMetadataSchema,
4726    #[serde(rename = "partyId")]
4727    pub party_id: String,
4728}
4729impl std::fmt::Display for ReviewEnvelopeRecipientPostSchema {
4730    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4731        write!(f, "{}", serde_json::to_string(self).unwrap())
4732    }
4733}
4734#[derive(Debug, Serialize, Deserialize)]
4735pub struct OfferEnvelopeRecipientPostSchema {
4736    #[serde(rename = "metadata")]
4737    pub metadata: OfferPostMetadataSchema,
4738    #[serde(rename = "partyId")]
4739    pub party_id: String,
4740}
4741impl std::fmt::Display for OfferEnvelopeRecipientPostSchema {
4742    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4743        write!(f, "{}", serde_json::to_string(self).unwrap())
4744    }
4745}
4746#[derive(Debug, Serialize, Deserialize)]
4747pub struct EnvelopesRecipientResponseSchema {
4748    #[serde(rename = "declinedDate")]
4749    pub declined_date: Option<String>,
4750    #[serde(rename = "declinedIp")]
4751    pub declined_ip: Option<String>,
4752    #[serde(rename = "deliveredDate")]
4753    pub delivered_date: Option<String>,
4754    #[serde(rename = "metadata")]
4755    pub metadata: serde_json::Value,
4756    #[serde(rename = "partyId")]
4757    ///The Blend party UUID
4758    pub party_id: String,
4759    #[serde(rename = "partyType")]
4760    pub party_type: Option<String>,
4761    #[serde(rename = "receivedIp")]
4762    pub received_ip: Option<String>,
4763    #[serde(rename = "signedDate")]
4764    pub signed_date: Option<String>,
4765    #[serde(rename = "signedIp")]
4766    pub signed_ip: Option<String>,
4767    #[serde(rename = "status")]
4768    pub status: Option<String>,
4769}
4770impl std::fmt::Display for EnvelopesRecipientResponseSchema {
4771    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4772        write!(f, "{}", serde_json::to_string(self).unwrap())
4773    }
4774}
4775#[derive(Debug, Serialize, Deserialize)]
4776pub struct IfamesignPostMetadataSchema {
4777    #[serde(rename = "closingId")]
4778    pub closing_id: String,
4779    #[serde(rename = "documents")]
4780    pub documents: Vec<serde_json::Value>,
4781}
4782impl std::fmt::Display for IfamesignPostMetadataSchema {
4783    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4784        write!(f, "{}", serde_json::to_string(self).unwrap())
4785    }
4786}
4787#[derive(Debug, Serialize, Deserialize)]
4788pub struct WetsignPostMetadataSchema {
4789    #[serde(rename = "documents")]
4790    ///List of Blend documents needed to be signed
4791    pub documents: Vec<serde_json::Value>,
4792}
4793impl std::fmt::Display for WetsignPostMetadataSchema {
4794    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4795        write!(f, "{}", serde_json::to_string(self).unwrap())
4796    }
4797}
4798#[derive(Debug, Serialize, Deserialize)]
4799pub struct WetsignResponseMetadataSchema(pub serde_json::Value);
4800#[derive(Debug, Serialize, Deserialize)]
4801pub struct EmptyResponseMetadataSchema {}
4802impl std::fmt::Display for EmptyResponseMetadataSchema {
4803    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4804        write!(f, "{}", serde_json::to_string(self).unwrap())
4805    }
4806}
4807#[derive(Debug, Serialize, Deserialize)]
4808pub struct EsignResponseMetadataSchema {
4809    #[serde(rename = "documents")]
4810    pub documents: Vec<serde_json::Value>,
4811    #[serde(rename = "loanId")]
4812    pub loan_id: String,
4813}
4814impl std::fmt::Display for EsignResponseMetadataSchema {
4815    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4816        write!(f, "{}", serde_json::to_string(self).unwrap())
4817    }
4818}
4819#[derive(Debug, Serialize, Deserialize)]
4820pub struct EsignMetadataSchema {
4821    #[serde(rename = "documents")]
4822    pub documents: Vec<serde_json::Value>,
4823}
4824impl std::fmt::Display for EsignMetadataSchema {
4825    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4826        write!(f, "{}", serde_json::to_string(self).unwrap())
4827    }
4828}
4829#[derive(Debug, Serialize, Deserialize)]
4830pub struct ESignDocumentWithTabs {
4831    #[serde(rename = "documentId")]
4832    pub document_id: String,
4833    #[serde(rename = "eSignTemplateId")]
4834    pub e_sign_template_id: Option<String>,
4835    #[serde(rename = "signersRequired")]
4836    pub signers_required: Option<String>,
4837    #[serde(rename = "tabs")]
4838    pub tabs: Vec<serde_json::Value>,
4839}
4840impl std::fmt::Display for ESignDocumentWithTabs {
4841    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4842        write!(f, "{}", serde_json::to_string(self).unwrap())
4843    }
4844}
4845#[derive(Debug, Serialize, Deserialize)]
4846pub struct ESignDocumentWithTabExtractionMethod {
4847    #[serde(rename = "documentId")]
4848    pub document_id: String,
4849    #[serde(rename = "eSignTemplateId")]
4850    pub e_sign_template_id: Option<String>,
4851    #[serde(rename = "extractTabs")]
4852    ///If additional information is required for tab extraction (which it is for EXPERE_ACROFORM documents), include it in extractTabs.
4853    pub extract_tabs: Option<Vec<serde_json::Value>>,
4854    #[serde(rename = "signersRequired")]
4855    pub signers_required: Option<String>,
4856    #[serde(rename = "tabExtractionMethod")]
4857    ///If tabs must be extracted from embedded fields, specify the extraction method to use.
4858    pub tab_extraction_method: String,
4859}
4860impl std::fmt::Display for ESignDocumentWithTabExtractionMethod {
4861    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4862        write!(f, "{}", serde_json::to_string(self).unwrap())
4863    }
4864}
4865#[derive(Debug, Serialize, Deserialize)]
4866pub struct EsignFontTabAttributesSchema {
4867    #[serde(rename = "bold")]
4868    pub bold: Option<bool>,
4869    #[serde(rename = "font")]
4870    pub font: Option<String>,
4871    #[serde(rename = "fontColor")]
4872    pub font_color: Option<String>,
4873    #[serde(rename = "fontSize")]
4874    pub font_size: Option<String>,
4875}
4876impl std::fmt::Display for EsignFontTabAttributesSchema {
4877    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4878        write!(f, "{}", serde_json::to_string(self).unwrap())
4879    }
4880}
4881#[derive(Debug, Serialize, Deserialize)]
4882pub struct EsignBaseTabAttributesSchema {
4883    #[serde(rename = "attributes")]
4884    pub attributes: serde_json::Value,
4885}
4886impl std::fmt::Display for EsignBaseTabAttributesSchema {
4887    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4888        write!(f, "{}", serde_json::to_string(self).unwrap())
4889    }
4890}
4891#[derive(Debug, Serialize, Deserialize)]
4892pub struct EsignSignHereSchema(pub serde_json::Value);
4893#[derive(Debug, Serialize, Deserialize)]
4894pub struct EsignApproveSchema(pub serde_json::Value);
4895#[derive(Debug, Serialize, Deserialize)]
4896pub struct EsignDateSignedSchema(pub serde_json::Value);
4897#[derive(Debug, Serialize, Deserialize)]
4898pub struct EsignCheckboxSchema(pub serde_json::Value);
4899#[derive(Debug, Serialize, Deserialize)]
4900pub struct ESignCheckboxGroupTabSchema {
4901    #[serde(rename = "attributes")]
4902    pub attributes: serde_json::Value,
4903    #[serde(rename = "type")]
4904    pub type_: String,
4905}
4906impl std::fmt::Display for ESignCheckboxGroupTabSchema {
4907    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4908        write!(f, "{}", serde_json::to_string(self).unwrap())
4909    }
4910}
4911#[derive(Debug, Serialize, Deserialize)]
4912pub struct CheckboxGroupOtherTabAttributesSchema {
4913    #[serde(rename = "checkboxes")]
4914    pub checkboxes: Option<Vec<CheckboxInCheckboxGroupTabSchema>>,
4915    #[serde(rename = "groupName")]
4916    pub group_name: Option<String>,
4917    #[serde(rename = "maximumAllowed")]
4918    pub maximum_allowed: Option<f64>,
4919    #[serde(rename = "minimumRequired")]
4920    pub minimum_required: Option<f64>,
4921    #[serde(rename = "validationRule")]
4922    pub validation_rule: Option<String>,
4923}
4924impl std::fmt::Display for CheckboxGroupOtherTabAttributesSchema {
4925    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4926        write!(f, "{}", serde_json::to_string(self).unwrap())
4927    }
4928}
4929#[derive(Debug, Serialize, Deserialize)]
4930pub struct CheckboxInCheckboxGroupTabSchema {
4931    #[serde(rename = "name")]
4932    pub name: Option<String>,
4933    #[serde(rename = "pageNumber")]
4934    pub page_number: f64,
4935    #[serde(rename = "selected")]
4936    pub selected: Option<bool>,
4937    #[serde(rename = "tabLabel")]
4938    pub tab_label: Option<String>,
4939    #[serde(rename = "xPosition")]
4940    pub x_position: f64,
4941    #[serde(rename = "yPosition")]
4942    pub y_position: f64,
4943}
4944impl std::fmt::Display for CheckboxInCheckboxGroupTabSchema {
4945    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4946        write!(f, "{}", serde_json::to_string(self).unwrap())
4947    }
4948}
4949#[derive(Debug, Serialize, Deserialize)]
4950pub struct EsignTextSchema(pub serde_json::Value);
4951#[derive(Debug, Serialize, Deserialize)]
4952pub struct EsignListSchema(pub serde_json::Value);
4953#[derive(Debug, Serialize, Deserialize)]
4954pub struct EsignRadioGroupSchema {
4955    #[serde(rename = "attributes")]
4956    pub attributes: serde_json::Value,
4957    #[serde(rename = "type")]
4958    pub type_: String,
4959}
4960impl std::fmt::Display for EsignRadioGroupSchema {
4961    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4962        write!(f, "{}", serde_json::to_string(self).unwrap())
4963    }
4964}
4965#[derive(Debug, Serialize, Deserialize)]
4966pub struct EsignRadioSchema {
4967    #[serde(rename = "pageNumber")]
4968    pub page_number: f64,
4969    #[serde(rename = "selected")]
4970    pub selected: Option<bool>,
4971    #[serde(rename = "tabId")]
4972    pub tab_id: Option<String>,
4973    #[serde(rename = "value")]
4974    pub value: Option<String>,
4975    #[serde(rename = "xPosition")]
4976    pub x_position: f64,
4977    #[serde(rename = "yPosition")]
4978    pub y_position: f64,
4979}
4980impl std::fmt::Display for EsignRadioSchema {
4981    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4982        write!(f, "{}", serde_json::to_string(self).unwrap())
4983    }
4984}
4985#[derive(Debug, Serialize, Deserialize)]
4986pub struct EsignInitialHereSchema(pub serde_json::Value);
4987#[derive(Debug, Serialize, Deserialize)]
4988pub struct EsignDateSchema(pub serde_json::Value);
4989#[derive(Debug, Serialize, Deserialize)]
4990pub struct EsignNoteSchema(pub serde_json::Value);
4991#[derive(Debug, Serialize, Deserialize)]
4992pub struct EsignExtractTabExpereAcroformSchema {
4993    #[serde(rename = "fieldName")]
4994    ///The name of the acroField from which to extract an Esign tab
4995    pub field_name: String,
4996    #[serde(rename = "required")]
4997    ///True if the tab is required to be completed by the recipient in Docusign, false if it is optional. Defaults to true.
4998    pub required: Option<bool>,
4999}
5000impl std::fmt::Display for EsignExtractTabExpereAcroformSchema {
5001    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5002        write!(f, "{}", serde_json::to_string(self).unwrap())
5003    }
5004}
5005#[derive(Debug, Serialize, Deserialize)]
5006pub struct ReviewPostMetadataSchema {
5007    #[serde(rename = "documents")]
5008    pub documents: Vec<serde_json::Value>,
5009}
5010impl std::fmt::Display for ReviewPostMetadataSchema {
5011    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5012        write!(f, "{}", serde_json::to_string(self).unwrap())
5013    }
5014}
5015#[derive(Debug, Serialize, Deserialize)]
5016pub struct ReviewResponseMetadataSchema {
5017    #[serde(rename = "documents")]
5018    pub documents: Vec<ReviewDocument>,
5019}
5020impl std::fmt::Display for ReviewResponseMetadataSchema {
5021    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5022        write!(f, "{}", serde_json::to_string(self).unwrap())
5023    }
5024}
5025#[derive(Debug, Serialize, Deserialize)]
5026pub struct ReviewDocument {
5027    #[serde(rename = "description")]
5028    pub description: Option<String>,
5029    #[serde(rename = "documentId")]
5030    ///The Blend UUID returned when uploading a document
5031    pub document_id: String,
5032    #[serde(rename = "name")]
5033    pub name: Option<String>,
5034    #[serde(rename = "reviewTracking")]
5035    pub review_tracking: Option<ReviewTracking>,
5036    #[serde(rename = "type")]
5037    pub type_: Option<String>,
5038}
5039impl std::fmt::Display for ReviewDocument {
5040    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5041        write!(f, "{}", serde_json::to_string(self).unwrap())
5042    }
5043}
5044#[derive(Debug, Serialize, Deserialize)]
5045pub struct ReviewTracking {
5046    #[serde(rename = "ip")]
5047    pub ip: String,
5048    #[serde(rename = "timestamp")]
5049    ///unix timestamp
5050    pub timestamp: f64,
5051}
5052impl std::fmt::Display for ReviewTracking {
5053    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5054        write!(f, "{}", serde_json::to_string(self).unwrap())
5055    }
5056}
5057#[derive(Debug, Serialize, Deserialize)]
5058pub struct OfferPostMetadataSchema {
5059    #[serde(rename = "termDetails")]
5060    pub term_details: Option<Vec<serde_json::Value>>,
5061    #[serde(rename = "documents")]
5062    ///The documents to be attached to the offer
5063    pub documents: Vec<serde_json::Value>,
5064}
5065impl std::fmt::Display for OfferPostMetadataSchema {
5066    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5067        write!(f, "{}", serde_json::to_string(self).unwrap())
5068    }
5069}
5070#[derive(Debug, Serialize, Deserialize)]
5071pub struct PackageResponseSchema {
5072    #[serde(rename = "applicationId")]
5073    ///The Blend application UUID
5074    pub application_id: String,
5075    #[serde(rename = "createdDate")]
5076    pub created_date: Option<String>,
5077    #[serde(rename = "description")]
5078    ///An optional description of the package
5079    pub description: Option<String>,
5080    #[serde(rename = "dueDate")]
5081    ///The ISO timestamp of when the lender has indicated a package is due
5082    pub due_date: Option<String>,
5083    #[serde(rename = "envelopes")]
5084    ///An envelope describes the signing strategy and the recipient assignment within the package
5085    pub envelopes: Vec<EnvelopeResponseSchema>,
5086    #[serde(rename = "foreignPackageId")]
5087    ///External package id provided by partner
5088    pub foreign_package_id: Option<String>,
5089    #[serde(rename = "id")]
5090    ///The Blend package UUID
5091    pub id: String,
5092    #[serde(rename = "name")]
5093    ///A name for the package
5094    pub name: Option<String>,
5095    #[serde(rename = "paperedAt")]
5096    ///The ISO timestamp of when the lender decides to mail a package and not pursue electronic delivery
5097    pub papered_at: Option<String>,
5098    #[serde(rename = "requestedBy")]
5099    pub requested_by: Option<String>,
5100    #[serde(rename = "status")]
5101    pub status: String,
5102    #[serde(rename = "type")]
5103    ///Package type
5104    pub type_: String,
5105}
5106impl std::fmt::Display for PackageResponseSchema {
5107    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5108        write!(f, "{}", serde_json::to_string(self).unwrap())
5109    }
5110}
5111#[derive(Debug, Serialize, Deserialize)]
5112pub enum PackageStatus {
5113    #[serde(rename = "CANCELLED")]
5114    Cancelled,
5115    #[serde(rename = "COMPLETED")]
5116    Completed,
5117    #[serde(rename = "CREATED")]
5118    Created,
5119    #[serde(rename = "DECLINED")]
5120    Declined,
5121    #[serde(rename = "DELIVERED")]
5122    Delivered,
5123    #[serde(rename = "FAILED_TO_CREATE")]
5124    FailedToCreate,
5125    #[serde(rename = "RETRIEVED")]
5126    Retrieved,
5127    #[serde(rename = "SIGNED")]
5128    Signed,
5129    #[serde(rename = "VIEWED")]
5130    Viewed,
5131}
5132#[derive(Debug, Serialize, Deserialize)]
5133pub struct EnvelopeResponseSchema {
5134    #[serde(rename = "id")]
5135    ///The Blend envelope UUID
5136    pub id: String,
5137    #[serde(rename = "providerId")]
5138    ///A Blend provided UUID for providerType ESIGN, SSO_SAML, and DIRECT_LINK envelopes
5139    pub provider_id: String,
5140    #[serde(rename = "providerType")]
5141    /**Different signing strategies: * DIRECT_LINK: The recipient uses a Blend Sign related URL link that may contain an access token to login for signing.
5142* ESIGN: A Docusign integration.
5143* IFRAME_SIGN: A signing strategy used in close service.
5144* REVIEW: The recipient views the documents in Blend's document viewer.
5145* SSO_SAML: Uses SSO to authenticate the recipient before acting on disclosures.
5146* WETSIGN: The recipient downloads the package as a PDF and uploads signed PDFs into Blend.
5147* OFFER: The recipient is given option to accept/decline the package containing term details and documents.
5148*/
5149    pub provider_type: String,
5150    #[serde(rename = "signatureRequired")]
5151    pub signature_required: bool,
5152    #[serde(rename = "status")]
5153    pub status: String,
5154    #[serde(rename = "recipients")]
5155    pub recipients: Vec<EnvelopesRecipientResponseSchema>,
5156}
5157impl std::fmt::Display for EnvelopeResponseSchema {
5158    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5159        write!(f, "{}", serde_json::to_string(self).unwrap())
5160    }
5161}
5162#[derive(Debug, Serialize, Deserialize)]
5163pub struct AssetsRefreshRequestSchema {
5164    #[serde(rename = "applicationId")]
5165    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
5166    pub application_id: String,
5167    #[serde(rename = "accountIds")]
5168    ///These are the accounts that a refresh will be initiated for. When an applicationId is provided, the accounts refreshed must be part of the specified application.
5169    pub account_ids: Vec<String>,
5170}
5171impl std::fmt::Display for AssetsRefreshRequestSchema {
5172    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5173        write!(f, "{}", serde_json::to_string(self).unwrap())
5174    }
5175}
5176#[derive(Debug, Serialize, Deserialize)]
5177pub struct Closing(pub serde_json::Value);
5178#[derive(Debug, Serialize, Deserialize)]
5179pub struct ClosingBaseRecord {
5180    #[serde(rename = "id")]
5181    ///Record ID
5182    pub id: String,
5183    #[serde(rename = "createdAt")]
5184    ///Creation Date
5185    pub created_at: String,
5186}
5187impl std::fmt::Display for ClosingBaseRecord {
5188    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5189        write!(f, "{}", serde_json::to_string(self).unwrap())
5190    }
5191}
5192#[derive(Debug, Serialize, Deserialize)]
5193pub enum ClosingType {
5194    #[serde(rename = "RON")]
5195    Ron,
5196    #[serde(rename = "HYBRID")]
5197    Hybrid,
5198    #[serde(rename = "TRADITIONAL")]
5199    Traditional,
5200    #[serde(rename = "UNDETERMINED")]
5201    Undetermined,
5202}
5203#[derive(Debug, Serialize, Deserialize)]
5204pub struct ClosingPartyPatchRequest {
5205    #[serde(rename = "email")]
5206    ///Email address of the closing party
5207    pub email: String,
5208    #[serde(rename = "partyType")]
5209    ///The closing party type
5210    pub party_type: Option<String>,
5211    #[serde(rename = "firstName")]
5212    ///First name of the closing party
5213    pub first_name: Option<String>,
5214    #[serde(rename = "lastName")]
5215    ///Last name of the closing party
5216    pub last_name: Option<String>,
5217    #[serde(rename = "phoneNumber")]
5218    ///Phone number of the closing party
5219    pub phone_number: Option<String>,
5220    #[serde(rename = "agencyName")]
5221    ///Name of the closing party's agency
5222    pub agency_name: Option<String>,
5223}
5224impl std::fmt::Display for ClosingPartyPatchRequest {
5225    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5226        write!(f, "{}", serde_json::to_string(self).unwrap())
5227    }
5228}
5229#[derive(Debug, Serialize, Deserialize)]
5230pub enum ClosingPartyType {
5231    #[serde(rename = "SETTLEMENT")]
5232    Settlement,
5233    #[serde(rename = "TITLE")]
5234    Title,
5235    #[serde(rename = "ATTORNEY")]
5236    Attorney,
5237    #[serde(rename = "CLOSER")]
5238    Closer,
5239    #[serde(rename = "SUPPORTING_PARTY")]
5240    SupportingParty,
5241}
5242#[derive(Debug, Serialize, Deserialize)]
5243pub struct ClosingParty(pub serde_json::Value);
5244#[derive(Debug, Serialize, Deserialize)]
5245pub struct ClosingAgency(pub serde_json::Value);
5246#[derive(Debug, Serialize, Deserialize)]
5247pub struct ClosingDocumentReference(pub serde_json::Value);
5248#[derive(Debug, Serialize, Deserialize)]
5249pub struct ClosingPackageReference {
5250    #[serde(rename = "packageID")]
5251    ///Package ID
5252    pub package_id: String,
5253    #[serde(rename = "packageType")]
5254    ///The type of the closing package
5255    pub package_type: String,
5256    #[serde(rename = "createdAt")]
5257    ///The UTC timestamp of the closing package creation. ISO format
5258    pub created_at: String,
5259    #[serde(rename = "details")]
5260    pub details: serde_json::Value,
5261}
5262impl std::fmt::Display for ClosingPackageReference {
5263    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5264        write!(f, "{}", serde_json::to_string(self).unwrap())
5265    }
5266}
5267#[derive(Debug, Serialize, Deserialize)]
5268pub struct ClosingDocumentRecipients {
5269    #[serde(rename = "partyId")]
5270    ///Party UUID of signer.
5271    pub party_id: String,
5272    #[serde(rename = "tabExtractionMethod")]
5273    ///If omitted, the document is considered view-only for this party. For eSign documents where tabs are expected to be added manually, use value `MANUAL` for `tabExtractionMethod`.
5274    pub tab_extraction_method: Option<String>,
5275    #[serde(rename = "extractTabs")]
5276    ///If additional information is required for tab extraction (which it is for `EXPERE_ACROFORM` documents), include it in `extractTabs`.
5277    pub extract_tabs: Option<Vec<EsignExtractTabExpereAcroformSchema>>,
5278    #[serde(rename = "tabs")]
5279    pub tabs: Option<Vec<serde_json::Value>>,
5280}
5281impl std::fmt::Display for ClosingDocumentRecipients {
5282    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5283        write!(f, "{}", serde_json::to_string(self).unwrap())
5284    }
5285}
5286#[derive(Debug, Serialize, Deserialize)]
5287pub enum ClosingSourceType {
5288    #[serde(rename = "LENDER")]
5289    Lender,
5290    #[serde(rename = "TITLE")]
5291    Title,
5292}
5293#[derive(Debug, Serialize, Deserialize)]
5294pub enum ClosingDesignationRequest {
5295    #[serde(rename = "SIGN_AHEAD")]
5296    SignAhead,
5297    #[serde(rename = "DAY_OF")]
5298    DayOf,
5299    #[serde(rename = "NOTE")]
5300    Note,
5301    #[serde(rename = "PRE_CLOSING")]
5302    PreClosing,
5303}
5304#[derive(Debug, Serialize, Deserialize)]
5305pub enum ClosingDesignationResponse {
5306    #[serde(rename = "SIGN_AHEAD")]
5307    SignAhead,
5308    #[serde(rename = "DAY_OF")]
5309    DayOf,
5310    #[serde(rename = "NOTE")]
5311    Note,
5312    #[serde(rename = "PRE_CLOSING")]
5313    PreClosing,
5314    #[serde(rename = "DRAFT_PRE_CLOSING")]
5315    DraftPreClosing,
5316}
5317#[derive(Debug, Serialize, Deserialize)]
5318pub enum ClosingPackageTypeResponse {
5319    #[serde(rename = "ESIGN")]
5320    Esign,
5321}
5322#[derive(Debug, Serialize, Deserialize)]
5323pub enum EsignClosingPackageStatusResponse {
5324    #[serde(rename = "COMPLETE")]
5325    Complete,
5326    #[serde(rename = "INCOMPLETE")]
5327    Incomplete,
5328}
5329#[derive(Debug, Serialize, Deserialize)]
5330pub struct EsignClosingPackageDetailsResponse {
5331    #[serde(rename = "closingPackageStatus")]
5332    ///The closing status of the esign package
5333    pub closing_package_status: String,
5334}
5335impl std::fmt::Display for EsignClosingPackageDetailsResponse {
5336    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5337        write!(f, "{}", serde_json::to_string(self).unwrap())
5338    }
5339}
5340#[derive(Debug, Serialize, Deserialize)]
5341pub struct ClosingList(pub Vec<Closing>);
5342#[derive(Debug, Serialize, Deserialize)]
5343pub struct ClosingPostRequest {
5344    #[serde(rename = "applicationId")]
5345    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
5346    pub application_id: String,
5347}
5348impl std::fmt::Display for ClosingPostRequest {
5349    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5350        write!(f, "{}", serde_json::to_string(self).unwrap())
5351    }
5352}
5353#[derive(Debug, Serialize, Deserialize)]
5354pub struct ClosingPatchRequest {
5355    #[serde(rename = "closingType")]
5356    ///The type of closing
5357    pub closing_type: Option<String>,
5358    #[serde(rename = "closingStart")]
5359    ///ISO 8601 datetime when the closing is set to start. This time will dictate when sign-ahead closing documents will be released to borrower(s) for eSign. A timezone offset **MUST** be provided in the date string to ensure sign ahead documents are released accurately for borrower(s), e.g., not a day earlier than expected.
5360    pub closing_start: Option<String>,
5361    #[serde(rename = "closingEnd")]
5362    ///ISO 8601 datetime when the closing is set to end. Borrower(s) will not be able to review or eSign closing documents after this time. A timezone offset **MUST** be provided in the date string to ensure closing documents expire at the correct time for borrower(s).
5363    pub closing_end: Option<String>,
5364    #[serde(rename = "scheduledCeremonyTime")]
5365    ///ISO 8601 datetime that represents a closing "day", which will be reflected in Settlement Agent Workspace and will be assumed to be the day when a borrower meets with their notary. If this value is not provided, it will have the same value as closingStart. This value should be before closingEnd.
5366    pub scheduled_ceremony_time: Option<String>,
5367    #[serde(rename = "timezone")]
5368    /**IMPORTANT - this field is only used by the browser in the webapp and does not effect the closing start time declared in this request.
5369Additionally, closingStart and closingEnd must include the correct timezone offset.
5370
5371For example if you wish to use Central time, the timezone value would be "America/Chicago" and the closingStart or closingDate value must
5372include an offset of "-06:00" during standard time i.e. "2020-12-12T00:00:00-06:00" or "-05:00" during daylight savings time "2021-06-12T00:00:00-05:00"
5373
5374Options include:
5375
5376"America/New_York" (Eastern time)
5377
5378"America/Chicago" (Central time)
5379
5380"America/Denver" (Mountain time - day light savings time applicable)
5381
5382"America/Phoenix" (Arizona time - day light savings not applicable)
5383
5384"America/Los_Angeles" (Pacific time)
5385
5386"America/Anchorage" (Alaska time)
5387
5388"Pacific/Honolulu" (Hawaii time)
5389*/
5390    pub timezone: Option<String>,
5391    #[serde(rename = "closingParties")]
5392    ///List of closing parties
5393    pub closing_parties: Option<Vec<ClosingPartyPatchRequest>>,
5394    #[serde(rename = "specialInstructions")]
5395    ///Special closing instructions
5396    pub special_instructions: Option<String>,
5397    #[serde(rename = "eNoteSignStart")]
5398    ///ISO 8601 format. The time component needs to be at midnight. Optional. Send as null to clear out the existing value and use defaults.
5399    pub e_note_sign_start: Option<String>,
5400    #[serde(rename = "eNoteSignEnd")]
5401    ///ISO 8601 format. The time component needs to be at end of day 23:59:59. Optional. Send as null to clear out the existing value and use defaults.
5402    pub e_note_sign_end: Option<String>,
5403}
5404impl std::fmt::Display for ClosingPatchRequest {
5405    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5406        write!(f, "{}", serde_json::to_string(self).unwrap())
5407    }
5408}
5409#[derive(Debug, Serialize, Deserialize)]
5410pub struct ClosingDocumentsPutRequest {
5411    #[serde(rename = "documents")]
5412    pub documents: Vec<ClosingDocumentReferenceRequest>,
5413}
5414impl std::fmt::Display for ClosingDocumentsPutRequest {
5415    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5416        write!(f, "{}", serde_json::to_string(self).unwrap())
5417    }
5418}
5419#[derive(Debug, Serialize, Deserialize)]
5420pub struct ClosingDocumentReferenceRequest {
5421    #[serde(rename = "documentID")]
5422    ///Blend Document ID
5423    pub document_id: String,
5424    #[serde(rename = "sourceType")]
5425    ///The source type
5426    pub source_type: String,
5427    #[serde(rename = "closingDesignation")]
5428    ///The document closing designation accepted by the API. If `PRE_CLOSING` is provided, then a `sourceType` of `LENDER` is not allowed; it must be `TITLE` to indicate the addition of a pre-closing document by the title/settlement agent.
5429    pub closing_designation: Option<String>,
5430    #[serde(rename = "requireNotarization")]
5431    ///Whether the document requires notarization.
5432    pub require_notarization: Option<bool>,
5433    #[serde(rename = "signersRequired")]
5434    ///The signers required for this document. If provided, you must also provide `recipients`.
5435    pub signers_required: Option<String>,
5436    #[serde(rename = "recipients")]
5437    pub recipients: Option<Vec<ClosingDocumentRecipients>>,
5438}
5439impl std::fmt::Display for ClosingDocumentReferenceRequest {
5440    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5441        write!(f, "{}", serde_json::to_string(self).unwrap())
5442    }
5443}
5444#[derive(Debug, Serialize, Deserialize)]
5445pub struct PreClosingDocumentsPutRequest {
5446    #[serde(rename = "documents")]
5447    pub documents: Vec<PreClosingDocumentReferenceRequest>,
5448}
5449impl std::fmt::Display for PreClosingDocumentsPutRequest {
5450    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5451        write!(f, "{}", serde_json::to_string(self).unwrap())
5452    }
5453}
5454#[derive(Debug, Serialize, Deserialize)]
5455pub struct PreClosingDocumentReferenceRequest {
5456    #[serde(rename = "documentID")]
5457    ///Blend Document ID
5458    pub document_id: String,
5459}
5460impl std::fmt::Display for PreClosingDocumentReferenceRequest {
5461    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5462        write!(f, "{}", serde_json::to_string(self).unwrap())
5463    }
5464}
5465#[derive(Debug, Serialize, Deserialize)]
5466pub struct ClosingCreatedResponse {
5467    #[serde(rename = "id")]
5468    ///Closing ID
5469    pub id: String,
5470}
5471impl std::fmt::Display for ClosingCreatedResponse {
5472    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5473        write!(f, "{}", serde_json::to_string(self).unwrap())
5474    }
5475}
5476#[derive(Debug, Serialize, Deserialize)]
5477pub struct ClosingNotFoundError {
5478    #[serde(rename = "error")]
5479    pub error: String,
5480    #[serde(rename = "display")]
5481    pub display: String,
5482    #[serde(rename = "trackingId")]
5483    pub tracking_id: Option<String>,
5484}
5485impl std::fmt::Display for ClosingNotFoundError {
5486    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5487        write!(f, "{}", serde_json::to_string(self).unwrap())
5488    }
5489}
5490#[derive(Debug, Serialize, Deserialize)]
5491pub struct ClosingSendPostRequest {
5492    #[serde(rename = "sourceType")]
5493    ///The source type
5494    pub source_type: String,
5495}
5496impl std::fmt::Display for ClosingSendPostRequest {
5497    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5498        write!(f, "{}", serde_json::to_string(self).unwrap())
5499    }
5500}
5501#[derive(Debug, Serialize, Deserialize)]
5502pub struct ClosingExternallyManagedENotePostRequest {
5503    #[serde(rename = "vaultData")]
5504    pub vault_data: VaultData,
5505}
5506impl std::fmt::Display for ClosingExternallyManagedENotePostRequest {
5507    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5508        write!(f, "{}", serde_json::to_string(self).unwrap())
5509    }
5510}
5511#[derive(Debug, Serialize, Deserialize)]
5512pub struct VaultData {}
5513impl std::fmt::Display for VaultData {
5514    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5515        write!(f, "{}", serde_json::to_string(self).unwrap())
5516    }
5517}
5518#[derive(Debug, Serialize, Deserialize)]
5519pub struct EOriginalVault {
5520    #[serde(rename = "eOriginal")]
5521    pub e_original: serde_json::Value,
5522}
5523impl std::fmt::Display for EOriginalVault {
5524    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5525        write!(f, "{}", serde_json::to_string(self).unwrap())
5526    }
5527}
5528#[derive(Debug, Serialize, Deserialize)]
5529pub struct ClosingENotePostRequest(pub serde_json::Value);
5530#[derive(Debug, Serialize, Deserialize)]
5531pub enum BlendENoteArmLoanTypeFormId {
5532    #[serde(rename = "3501e")]
5533    BlendENoteArmLoanTypeFormId3501E,
5534    #[serde(rename = "3501.02e")]
5535    BlendENoteArmLoanTypeFormId350102E,
5536    #[serde(rename = "3501.10e")]
5537    BlendENoteArmLoanTypeFormId350110E,
5538    #[serde(rename = "3501.30e")]
5539    BlendENoteArmLoanTypeFormId350130E,
5540    #[serde(rename = "3501.39e")]
5541    BlendENoteArmLoanTypeFormId350139E,
5542    #[serde(rename = "3501.46e")]
5543    BlendENoteArmLoanTypeFormId350146E,
5544    #[serde(rename = "3501.47e")]
5545    BlendENoteArmLoanTypeFormId350147E,
5546    #[serde(rename = "3501.49e")]
5547    BlendENoteArmLoanTypeFormId350149E,
5548    #[serde(rename = "3501.50e")]
5549    BlendENoteArmLoanTypeFormId350150E,
5550    #[serde(rename = "3502e")]
5551    BlendENoteArmLoanTypeFormId3502E,
5552    #[serde(rename = "3502.02e")]
5553    BlendENoteArmLoanTypeFormId350202E,
5554    #[serde(rename = "3502.10e")]
5555    BlendENoteArmLoanTypeFormId350210E,
5556    #[serde(rename = "3502.30e")]
5557    BlendENoteArmLoanTypeFormId350230E,
5558    #[serde(rename = "3502.39e")]
5559    BlendENoteArmLoanTypeFormId350239E,
5560    #[serde(rename = "3502.46e")]
5561    BlendENoteArmLoanTypeFormId350246E,
5562    #[serde(rename = "3502.47e")]
5563    BlendENoteArmLoanTypeFormId350247E,
5564    #[serde(rename = "3502.49e")]
5565    BlendENoteArmLoanTypeFormId350249E,
5566    #[serde(rename = "3502.50e")]
5567    BlendENoteArmLoanTypeFormId350250E,
5568    #[serde(rename = "3504e")]
5569    BlendENoteArmLoanTypeFormId3504E,
5570    #[serde(rename = "3522e")]
5571    BlendENoteArmLoanTypeFormId3522E,
5572    #[serde(rename = "3528e")]
5573    BlendENoteArmLoanTypeFormId3528E,
5574    #[serde(rename = "3528e-ak")]
5575    BlendENoteArmLoanTypeFormId3528EAk,
5576    #[serde(rename = "3528e-fl")]
5577    BlendENoteArmLoanTypeFormId3528EFl,
5578    #[serde(rename = "3528e-nh")]
5579    BlendENoteArmLoanTypeFormId3528ENh,
5580    #[serde(rename = "3528e-pa")]
5581    BlendENoteArmLoanTypeFormId3528EPa,
5582    #[serde(rename = "3528e-tx")]
5583    BlendENoteArmLoanTypeFormId3528ETx,
5584    #[serde(rename = "3528e-va")]
5585    BlendENoteArmLoanTypeFormId3528EVa,
5586    #[serde(rename = "3528e-vt")]
5587    BlendENoteArmLoanTypeFormId3528EVt,
5588    #[serde(rename = "3528e-wi")]
5589    BlendENoteArmLoanTypeFormId3528EWi,
5590    #[serde(rename = "3528e-wv")]
5591    BlendENoteArmLoanTypeFormId3528EWv,
5592}
5593#[derive(Debug, Serialize, Deserialize)]
5594pub enum BlendENoteFixedLoanTypeFormId {
5595    #[serde(rename = "3200e")]
5596    BlendENoteFixedLoanTypeFormId3200E,
5597    #[serde(rename = "3200e-usda")]
5598    BlendENoteFixedLoanTypeFormId3200EUsda,
5599    #[serde(rename = "3200e-fha")]
5600    BlendENoteFixedLoanTypeFormId3200EFha,
5601    #[serde(rename = "3200e-fha-ak")]
5602    BlendENoteFixedLoanTypeFormId3200EFhaAk,
5603    #[serde(rename = "3200e-fha-fl")]
5604    BlendENoteFixedLoanTypeFormId3200EFhaFl,
5605    #[serde(rename = "3200e-fha-ia")]
5606    BlendENoteFixedLoanTypeFormId3200EFhaIa,
5607    #[serde(rename = "3200e-fha-mo")]
5608    BlendENoteFixedLoanTypeFormId3200EFhaMo,
5609    #[serde(rename = "3200e-fha-nh")]
5610    BlendENoteFixedLoanTypeFormId3200EFhaNh,
5611    #[serde(rename = "3200e-fha-pa")]
5612    BlendENoteFixedLoanTypeFormId3200EFhaPa,
5613    #[serde(rename = "3200e-fha-va")]
5614    BlendENoteFixedLoanTypeFormId3200EFhaVa,
5615    #[serde(rename = "3200e-fha-vt")]
5616    BlendENoteFixedLoanTypeFormId3200EFhaVt,
5617    #[serde(rename = "3200e-fha-wi")]
5618    BlendENoteFixedLoanTypeFormId3200EFhaWi,
5619    #[serde(rename = "3200e-fha-wv")]
5620    BlendENoteFixedLoanTypeFormId3200EFhaWv,
5621    #[serde(rename = "3200e-va")]
5622    BlendENoteFixedLoanTypeFormId3200EVa,
5623    #[serde(rename = "3200e-va2")]
5624    BlendENoteFixedLoanTypeFormId3200EVa2,
5625    #[serde(rename = "3200e-va-ak")]
5626    BlendENoteFixedLoanTypeFormId3200EVaAk,
5627    #[serde(rename = "3200e-va-ca")]
5628    BlendENoteFixedLoanTypeFormId3200EVaCa,
5629    #[serde(rename = "3200e-va-fl")]
5630    BlendENoteFixedLoanTypeFormId3200EVaFl,
5631    #[serde(rename = "3200e-va-la")]
5632    BlendENoteFixedLoanTypeFormId3200EVaLa,
5633    #[serde(rename = "3200e-va-me")]
5634    BlendENoteFixedLoanTypeFormId3200EVaMe,
5635    #[serde(rename = "3200e-va-nh")]
5636    BlendENoteFixedLoanTypeFormId3200EVaNh,
5637    #[serde(rename = "3200e-va-ny")]
5638    BlendENoteFixedLoanTypeFormId3200EVaNy,
5639    #[serde(rename = "3200e-va-pa")]
5640    BlendENoteFixedLoanTypeFormId3200EVaPa,
5641    #[serde(rename = "3200e-va-tx")]
5642    BlendENoteFixedLoanTypeFormId3200EVaTx,
5643    #[serde(rename = "3200e-va-va")]
5644    BlendENoteFixedLoanTypeFormId3200EVaVa,
5645    #[serde(rename = "3200e-va-vt")]
5646    BlendENoteFixedLoanTypeFormId3200EVaVt,
5647    #[serde(rename = "3200e-va-wi")]
5648    BlendENoteFixedLoanTypeFormId3200EVaWi,
5649    #[serde(rename = "3200e-va-wv")]
5650    BlendENoteFixedLoanTypeFormId3200EVaWv,
5651    #[serde(rename = "3200e-va-dc")]
5652    BlendENoteFixedLoanTypeFormId3200EVaDc,
5653    #[serde(rename = "3200e-in")]
5654    BlendENoteFixedLoanTypeFormId3200EIn,
5655    #[serde(rename = "3200e-md")]
5656    BlendENoteFixedLoanTypeFormId3200EMd,
5657    #[serde(rename = "3200e-tx")]
5658    BlendENoteFixedLoanTypeFormId3200ETx,
5659    #[serde(rename = "3200e-al")]
5660    BlendENoteFixedLoanTypeFormId3200EAl,
5661    #[serde(rename = "3200e-al2")]
5662    BlendENoteFixedLoanTypeFormId3200EAl2,
5663    #[serde(rename = "3202e")]
5664    BlendENoteFixedLoanTypeFormId3202E,
5665    #[serde(rename = "3210e")]
5666    BlendENoteFixedLoanTypeFormId3210E,
5667    #[serde(rename = "3220e")]
5668    BlendENoteFixedLoanTypeFormId3220E,
5669    #[serde(rename = "3230e")]
5670    BlendENoteFixedLoanTypeFormId3230E,
5671    #[serde(rename = "3233e")]
5672    BlendENoteFixedLoanTypeFormId3233E,
5673    #[serde(rename = "3239e")]
5674    BlendENoteFixedLoanTypeFormId3239E,
5675    #[serde(rename = "3244.1e")]
5676    BlendENoteFixedLoanTypeFormId32441E,
5677    #[serde(rename = "3246e")]
5678    BlendENoteFixedLoanTypeFormId3246E,
5679    #[serde(rename = "3247e")]
5680    BlendENoteFixedLoanTypeFormId3247E,
5681    #[serde(rename = "3249e")]
5682    BlendENoteFixedLoanTypeFormId3249E,
5683    #[serde(rename = "3250e")]
5684    BlendENoteFixedLoanTypeFormId3250E,
5685}
5686#[derive(Debug, Serialize, Deserialize)]
5687pub struct EOriginalENoteLoanType {
5688    #[serde(rename = "lateChargeMaximumAmount")]
5689    ///The maximum monthly late charge amount allowed.
5690    pub late_charge_maximum_amount: Option<f64>,
5691    #[serde(rename = "conformingYearType")]
5692    pub conforming_year_type: Option<String>,
5693    #[serde(rename = "registryOperator")]
5694    pub registry_operator: Option<String>,
5695}
5696impl std::fmt::Display for EOriginalENoteLoanType {
5697    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5698        write!(f, "{}", serde_json::to_string(self).unwrap())
5699    }
5700}
5701#[derive(Debug, Serialize, Deserialize)]
5702pub struct EOriginalENoteArmLoanType(pub serde_json::Value);
5703#[derive(Debug, Serialize, Deserialize)]
5704pub struct EOriginalENoteFixedLoanType(pub serde_json::Value);
5705#[derive(Debug, Serialize, Deserialize)]
5706pub struct DocMagicENoteLoanType {
5707    #[serde(rename = "loanAmortizationPeriodCount")]
5708    ///The number periods (as defined by the Loan Amortization Period Type) over which the scheduled loan payments of principal and/or interest are calculated to retire the obligation. Minimum is 0, maximum is 2147483647.
5709    pub loan_amortization_period_count: i64,
5710    #[serde(rename = "loanAmortizationPeriodType")]
5711    ///The duration of time used to define the period over which the loan is amortized.
5712    pub loan_amortization_period_type: String,
5713    #[serde(rename = "paymentFrequencyType")]
5714    ///Specifies the frequency of the mortgage payment.
5715    pub payment_frequency_type: String,
5716    #[serde(rename = "baseLoanAmount")]
5717    ///The base loan amount to be loaned to the borrower not including PMI, MIP, or Funding Fee.
5718    pub base_loan_amount: Option<f64>,
5719}
5720impl std::fmt::Display for DocMagicENoteLoanType {
5721    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5722        write!(f, "{}", serde_json::to_string(self).unwrap())
5723    }
5724}
5725#[derive(Debug, Serialize, Deserialize)]
5726pub struct DocMagicENoteArmLoanType(pub serde_json::Value);
5727#[derive(Debug, Serialize, Deserialize)]
5728pub struct DocMagicENoteFixedLoanType(pub serde_json::Value);
5729#[derive(Debug, Serialize, Deserialize)]
5730pub struct BlendENoteArmLoanType(pub serde_json::Value);
5731#[derive(Debug, Serialize, Deserialize)]
5732pub struct BlendENoteBaseLoan {
5733    #[serde(rename = "MIN")]
5734    ///Mortgage Identification Number. 18-digit number passed as a string whose last digit is a control digit. Required in production environment.
5735    pub min: Option<String>,
5736    #[serde(rename = "lenderLoanId")]
5737    ///The identifier assigned by the originating Lender to be referenced as the Loan ID/Number on all settlement documents, notes, riders, etc.
5738    pub lender_loan_id: Option<String>,
5739    #[serde(rename = "executionDate")]
5740    pub execution_date: String,
5741    #[serde(rename = "executionCity")]
5742    ///The name of the city.
5743    pub execution_city: String,
5744    #[serde(rename = "executionState")]
5745    ///The two-character representation of the US state, US Territory, Canadian Province, Military APO FPO, or Territory.
5746    pub execution_state: String,
5747    #[serde(rename = "propertyAddress")]
5748    ///The property address will be pulled from Blend if not specified.
5749    pub property_address: Option<serde_json::Value>,
5750    #[serde(rename = "scheduledFirstPaymentDate")]
5751    ///The month and year of the first scheduled mortgage payment to be made by the borrower under the terms of the mortgage. Must be in YYYY-MM format. The first day of the month is assumed.
5752    pub scheduled_first_payment_date: String,
5753    #[serde(rename = "notePayToAddress")]
5754    pub note_pay_to_address: serde_json::Value,
5755    #[serde(rename = "lienPriorityType")]
5756    ///Specifies the priority of the lien against the subject property.
5757    pub lien_priority_type: Option<String>,
5758    #[serde(rename = "mortgageType")]
5759    ///Identifies the highest level private or public sector entity under whose guidelines the mortgage is originated. The mortgage type will be pulled from Blend if not specified.
5760    pub mortgage_type: Option<String>,
5761    #[serde(rename = "loanPurposeType")]
5762    ///Specifies the purpose for which the loan proceeds will be used. The loan purpose type will be pulled from Blend if not specified.
5763    pub loan_purpose_type: Option<String>,
5764    #[serde(rename = "noteRatePercent")]
5765    pub note_rate_percent: f64,
5766    #[serde(rename = "originalLoanAmount")]
5767    ///The amount to be repaid as disclosed on the Note. Will be pulled from Blend if not specified.
5768    pub original_loan_amount: Option<f64>,
5769    #[serde(rename = "loanMaturityDate")]
5770    ///The date when the loan is scheduled to be paid in full as reflected on the Note.
5771    pub loan_maturity_date: String,
5772    #[serde(rename = "originalPrincipalAndInterestPaymentAmount")]
5773    ///The dollar amount of the principal and interest payment as stated on the Note. The principal and interest payment is usually obtained using the loan amount and interest rate to arrive at full amortization during the loan term.
5774    pub original_principal_and_interest_payment_amount: f64,
5775    #[serde(rename = "lateChargeGracePeriod")]
5776    ///The grace period in days for this loan before a late charge will be applied.
5777    pub late_charge_grace_period: i64,
5778    #[serde(rename = "lateChargeRate")]
5779    pub late_charge_rate: f64,
5780    #[serde(rename = "parties")]
5781    pub parties: BlendENoteParties,
5782}
5783impl std::fmt::Display for BlendENoteBaseLoan {
5784    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5785        write!(f, "{}", serde_json::to_string(self).unwrap())
5786    }
5787}
5788#[derive(Debug, Serialize, Deserialize)]
5789pub struct BlendENoteAddressComponentType(pub String);
5790#[derive(Debug, Serialize, Deserialize)]
5791pub enum BlendENoteAddressUnitDesignatorType {
5792    #[serde(rename = "Apartment")]
5793    Apartment,
5794    #[serde(rename = "Basement")]
5795    Basement,
5796    #[serde(rename = "Building")]
5797    Building,
5798    #[serde(rename = "Condo")]
5799    Condo,
5800    #[serde(rename = "Department")]
5801    Department,
5802    #[serde(rename = "Floor")]
5803    Floor,
5804    #[serde(rename = "Front")]
5805    Front,
5806    #[serde(rename = "Hanger")]
5807    Hanger,
5808    #[serde(rename = "Key")]
5809    Key,
5810    #[serde(rename = "Lobby")]
5811    Lobby,
5812    #[serde(rename = "Lot")]
5813    Lot,
5814    #[serde(rename = "Lower")]
5815    Lower,
5816    #[serde(rename = "Office")]
5817    Office,
5818    #[serde(rename = "Other")]
5819    Other,
5820    #[serde(rename = "Penthouse")]
5821    Penthouse,
5822    #[serde(rename = "Pier")]
5823    Pier,
5824    #[serde(rename = "Rear")]
5825    Rear,
5826    #[serde(rename = "Room")]
5827    Room,
5828    #[serde(rename = "Side")]
5829    Side,
5830    #[serde(rename = "Space")]
5831    Space,
5832    #[serde(rename = "Stop")]
5833    Stop,
5834    #[serde(rename = "Suite")]
5835    Suite,
5836    #[serde(rename = "Trailer")]
5837    Trailer,
5838    #[serde(rename = "Unit")]
5839    Unit,
5840    #[serde(rename = "Upper")]
5841    Upper,
5842}
5843#[derive(Debug, Serialize, Deserialize)]
5844pub struct BlendENoteAgencyCaseIdentifierType(pub String);
5845#[derive(Debug, Serialize, Deserialize)]
5846pub struct BlendENoteAgent {
5847    #[serde(rename = "contactName")]
5848    pub contact_name: Option<String>,
5849    #[serde(rename = "postalAddress")]
5850    pub postal_address: Option<serde_json::Value>,
5851    #[serde(rename = "type")]
5852    pub type_: Option<String>,
5853    #[serde(rename = "unparsedName")]
5854    pub unparsed_name: String,
5855}
5856impl std::fmt::Display for BlendENoteAgent {
5857    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5858        write!(f, "{}", serde_json::to_string(self).unwrap())
5859    }
5860}
5861#[derive(Debug, Serialize, Deserialize)]
5862pub enum BlendENoteAgentType {
5863    #[serde(rename = "Attorney")]
5864    Attorney,
5865    #[serde(rename = "ClosingAgent")]
5866    ClosingAgent,
5867    #[serde(rename = "EscrowCompany")]
5868    EscrowCompany,
5869    #[serde(rename = "SettlementAgent")]
5870    SettlementAgent,
5871    #[serde(rename = "TitleCompany")]
5872    TitleCompany,
5873    #[serde(rename = "Other")]
5874    Other,
5875}
5876#[derive(Debug, Serialize, Deserialize)]
5877pub struct BlendENoteArmLoan {
5878    #[serde(rename = "armLoan")]
5879    pub arm_loan: BlendENoteArmLoanType,
5880}
5881impl std::fmt::Display for BlendENoteArmLoan {
5882    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5883        write!(f, "{}", serde_json::to_string(self).unwrap())
5884    }
5885}
5886#[derive(Debug, Serialize, Deserialize)]
5887pub struct BlendENoteCityStateZip {
5888    #[serde(rename = "city")]
5889    ///The name of the city.
5890    pub city: String,
5891    #[serde(rename = "postalCode")]
5892    ///The postal code (ZIP Code in the US) for the address. ZIP Code may be either 5 or 9 digits.
5893    pub postal_code: String,
5894    #[serde(rename = "state")]
5895    ///The two-character representation of the US state, US Territory, Canadian Province, Military APO FPO, or Territory.
5896    pub state: String,
5897}
5898impl std::fmt::Display for BlendENoteCityStateZip {
5899    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
5900        write!(f, "{}", serde_json::to_string(self).unwrap())
5901    }
5902}
5903#[derive(Debug, Serialize, Deserialize)]
5904pub struct BlendENoteCityType(pub String);
5905#[derive(Debug, Serialize, Deserialize)]
5906pub struct ExecutionCityType(pub String);
5907#[derive(Debug, Serialize, Deserialize)]
5908pub enum ExecutionStateType {
5909    #[serde(rename = "AL")]
5910    Al,
5911    #[serde(rename = "AK")]
5912    Ak,
5913    #[serde(rename = "AZ")]
5914    Az,
5915    #[serde(rename = "AR")]
5916    Ar,
5917    #[serde(rename = "CA")]
5918    Ca,
5919    #[serde(rename = "CO")]
5920    Co,
5921    #[serde(rename = "CT")]
5922    Ct,
5923    #[serde(rename = "DE")]
5924    De,
5925    #[serde(rename = "DC")]
5926    Dc,
5927    #[serde(rename = "FL")]
5928    Fl,
5929    #[serde(rename = "GA")]
5930    Ga,
5931    #[serde(rename = "HI")]
5932    Hi,
5933    #[serde(rename = "ID")]
5934    Id,
5935    #[serde(rename = "IL")]
5936    Il,
5937    #[serde(rename = "IN")]
5938    In,
5939    #[serde(rename = "IA")]
5940    Ia,
5941    #[serde(rename = "KS")]
5942    Ks,
5943    #[serde(rename = "KY")]
5944    Ky,
5945    #[serde(rename = "LA")]
5946    La,
5947    #[serde(rename = "ME")]
5948    Me,
5949    #[serde(rename = "MD")]
5950    Md,
5951    #[serde(rename = "MA")]
5952    Ma,
5953    #[serde(rename = "MI")]
5954    Mi,
5955    #[serde(rename = "MN")]
5956    Mn,
5957    #[serde(rename = "MS")]
5958    Ms,
5959    #[serde(rename = "MO")]
5960    Mo,
5961    #[serde(rename = "MT")]
5962    Mt,
5963    #[serde(rename = "NE")]
5964    Ne,
5965    #[serde(rename = "NV")]
5966    Nv,
5967    #[serde(rename = "NH")]
5968    Nh,
5969    #[serde(rename = "NJ")]
5970    Nj,
5971    #[serde(rename = "NM")]
5972    Nm,
5973    #[serde(rename = "NY")]
5974    Ny,
5975    #[serde(rename = "NC")]
5976    Nc,
5977    #[serde(rename = "ND")]
5978    Nd,
5979    #[serde(rename = "OH")]
5980    Oh,
5981    #[serde(rename = "OK")]
5982    Ok,
5983    #[serde(rename = "OR")]
5984    Or,
5985    #[serde(rename = "PA")]
5986    Pa,
5987    #[serde(rename = "RI")]
5988    Ri,
5989    #[serde(rename = "SC")]
5990    Sc,
5991    #[serde(rename = "SD")]
5992    Sd,
5993    #[serde(rename = "TN")]
5994    Tn,
5995    #[serde(rename = "TX")]
5996    Tx,
5997    #[serde(rename = "UT")]
5998    Ut,
5999    #[serde(rename = "VT")]
6000    Vt,
6001    #[serde(rename = "VA")]
6002    Va,
6003    #[serde(rename = "WA")]
6004    Wa,
6005    #[serde(rename = "WV")]
6006    Wv,
6007    #[serde(rename = "WI")]
6008    Wi,
6009    #[serde(rename = "WY")]
6010    Wy,
6011}
6012#[derive(Debug, Serialize, Deserialize)]
6013pub struct BlendENoteParties(pub serde_json::Value);
6014#[derive(Debug, Serialize, Deserialize)]
6015pub struct BlendENoteContactNameType(pub String);
6016#[derive(Debug, Serialize, Deserialize)]
6017pub struct BlendENoteCountyType(pub String);
6018#[derive(Debug, Serialize, Deserialize)]
6019pub struct BlendENoteFixedLoan {
6020    #[serde(rename = "fixedLoan")]
6021    pub fixed_loan: BlendENoteFixedLoanType,
6022}
6023impl std::fmt::Display for BlendENoteFixedLoan {
6024    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6025        write!(f, "{}", serde_json::to_string(self).unwrap())
6026    }
6027}
6028#[derive(Debug, Serialize, Deserialize)]
6029pub struct BlendENoteFixedLoanType(pub serde_json::Value);
6030#[derive(Debug, Serialize, Deserialize)]
6031pub struct BlendENoteLender {
6032    #[serde(rename = "contactName")]
6033    pub contact_name: String,
6034    #[serde(rename = "nmlsId")]
6035    ///Nationwide Multistate Licensing System ID number. Minimum is 1, maximum is 2147483647.
6036    pub nmls_id: i64,
6037    #[serde(rename = "unparsedName")]
6038    pub unparsed_name: String,
6039}
6040impl std::fmt::Display for BlendENoteLender {
6041    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6042        write!(f, "{}", serde_json::to_string(self).unwrap())
6043    }
6044}
6045#[derive(Debug, Serialize, Deserialize)]
6046pub struct BlendENoteLoanParty {
6047    #[serde(rename = "nmlsId")]
6048    ///Nationwide Multistate Licensing System ID number. Minimum is 1, maximum is 2147483647.
6049    pub nmls_id: i64,
6050    #[serde(rename = "unparsedName")]
6051    pub unparsed_name: String,
6052    #[serde(rename = "phoneNumber")]
6053    ///String representation of the phone number
6054    pub phone_number: String,
6055    #[serde(rename = "email")]
6056    ///Party email
6057    pub email: String,
6058}
6059impl std::fmt::Display for BlendENoteLoanParty {
6060    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6061        write!(f, "{}", serde_json::to_string(self).unwrap())
6062    }
6063}
6064#[derive(Debug, Serialize, Deserialize)]
6065pub struct BlendENoteNmlsrid(pub i64);
6066#[derive(Debug, Serialize, Deserialize)]
6067pub struct BlendENoteParsedStreetAddress {
6068    #[serde(rename = "addressUnitDesignatorType")]
6069    pub address_unit_designator_type: Option<String>,
6070    #[serde(rename = "addressUnitIdentifier")]
6071    pub address_unit_identifier: Option<String>,
6072    #[serde(rename = "streetName")]
6073    pub street_name: String,
6074    #[serde(rename = "streetPostDirectionalText")]
6075    pub street_post_directional_text: Option<String>,
6076    #[serde(rename = "streetPreDirectionalText")]
6077    pub street_pre_directional_text: Option<String>,
6078    #[serde(rename = "streetPrimaryNumberText")]
6079    pub street_primary_number_text: Option<String>,
6080    #[serde(rename = "streetSuffixText")]
6081    pub street_suffix_text: Option<String>,
6082}
6083impl std::fmt::Display for BlendENoteParsedStreetAddress {
6084    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6085        write!(f, "{}", serde_json::to_string(self).unwrap())
6086    }
6087}
6088#[derive(Debug, Serialize, Deserialize)]
6089pub struct BlendENoteParsedFullAddress(pub serde_json::Value);
6090#[derive(Debug, Serialize, Deserialize)]
6091pub struct BlendENoteParsedFullAddressWithCounty(pub serde_json::Value);
6092#[derive(Debug, Serialize, Deserialize)]
6093pub struct BlendENotePercentage(pub f64);
6094#[derive(Debug, Serialize, Deserialize)]
6095pub struct BlendENotePointWordsType(pub String);
6096#[derive(Debug, Serialize, Deserialize)]
6097pub enum BlendENoteStateType {
6098    #[serde(rename = "AL")]
6099    Al,
6100    #[serde(rename = "AK")]
6101    Ak,
6102    #[serde(rename = "AZ")]
6103    Az,
6104    #[serde(rename = "AR")]
6105    Ar,
6106    #[serde(rename = "CA")]
6107    Ca,
6108    #[serde(rename = "CO")]
6109    Co,
6110    #[serde(rename = "CT")]
6111    Ct,
6112    #[serde(rename = "DE")]
6113    De,
6114    #[serde(rename = "DC")]
6115    Dc,
6116    #[serde(rename = "FL")]
6117    Fl,
6118    #[serde(rename = "GA")]
6119    Ga,
6120    #[serde(rename = "HI")]
6121    Hi,
6122    #[serde(rename = "ID")]
6123    Id,
6124    #[serde(rename = "IL")]
6125    Il,
6126    #[serde(rename = "IN")]
6127    In,
6128    #[serde(rename = "IA")]
6129    Ia,
6130    #[serde(rename = "KS")]
6131    Ks,
6132    #[serde(rename = "KY")]
6133    Ky,
6134    #[serde(rename = "LA")]
6135    La,
6136    #[serde(rename = "ME")]
6137    Me,
6138    #[serde(rename = "MD")]
6139    Md,
6140    #[serde(rename = "MA")]
6141    Ma,
6142    #[serde(rename = "MI")]
6143    Mi,
6144    #[serde(rename = "MN")]
6145    Mn,
6146    #[serde(rename = "MS")]
6147    Ms,
6148    #[serde(rename = "MO")]
6149    Mo,
6150    #[serde(rename = "MT")]
6151    Mt,
6152    #[serde(rename = "NE")]
6153    Ne,
6154    #[serde(rename = "NV")]
6155    Nv,
6156    #[serde(rename = "NH")]
6157    Nh,
6158    #[serde(rename = "NJ")]
6159    Nj,
6160    #[serde(rename = "NM")]
6161    Nm,
6162    #[serde(rename = "NY")]
6163    Ny,
6164    #[serde(rename = "NC")]
6165    Nc,
6166    #[serde(rename = "ND")]
6167    Nd,
6168    #[serde(rename = "OH")]
6169    Oh,
6170    #[serde(rename = "OK")]
6171    Ok,
6172    #[serde(rename = "OR")]
6173    Or,
6174    #[serde(rename = "PA")]
6175    Pa,
6176    #[serde(rename = "RI")]
6177    Ri,
6178    #[serde(rename = "SC")]
6179    Sc,
6180    #[serde(rename = "SD")]
6181    Sd,
6182    #[serde(rename = "TN")]
6183    Tn,
6184    #[serde(rename = "TX")]
6185    Tx,
6186    #[serde(rename = "UT")]
6187    Ut,
6188    #[serde(rename = "VT")]
6189    Vt,
6190    #[serde(rename = "VA")]
6191    Va,
6192    #[serde(rename = "WA")]
6193    Wa,
6194    #[serde(rename = "WV")]
6195    Wv,
6196    #[serde(rename = "WI")]
6197    Wi,
6198    #[serde(rename = "WY")]
6199    Wy,
6200}
6201#[derive(Debug, Serialize, Deserialize)]
6202pub struct BlendENoteData {}
6203impl std::fmt::Display for BlendENoteData {
6204    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6205        write!(f, "{}", serde_json::to_string(self).unwrap())
6206    }
6207}
6208#[derive(Debug, Serialize, Deserialize)]
6209pub struct BlendENoteUnparsedNameType(pub String);
6210#[derive(Debug, Serialize, Deserialize)]
6211pub struct BlendENoteUnparsedStreetAddress {
6212    #[serde(rename = "addressLineText")]
6213    pub address_line_text: String,
6214    #[serde(rename = "addressAdditionalLineText")]
6215    pub address_additional_line_text: Option<String>,
6216}
6217impl std::fmt::Display for BlendENoteUnparsedStreetAddress {
6218    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6219        write!(f, "{}", serde_json::to_string(self).unwrap())
6220    }
6221}
6222#[derive(Debug, Serialize, Deserialize)]
6223pub struct BlendENoteUnparsedFullAddress(pub serde_json::Value);
6224#[derive(Debug, Serialize, Deserialize)]
6225pub struct BlendENoteUnparsedFullAddressWithCounty(pub serde_json::Value);
6226#[derive(Debug, Serialize, Deserialize)]
6227pub struct GetItpResponse {
6228    #[serde(rename = "addedAt")]
6229    ///ISO 8601 timestamp when the first Intent to Proceed Workflow was added for any borrower.
6230    pub added_at: String,
6231    #[serde(rename = "givenAt")]
6232    ///ISO 8601 timestamp when Intent to Proceed was given on an application.
6233    pub given_at: Option<String>,
6234    #[serde(rename = "givenBy")]
6235    ///The partyID of the borrower who gave Intent to Proceed.
6236    pub given_by: Option<String>,
6237    #[serde(rename = "givenMethod")]
6238    ///The method used to provide Intent to Proceed. This is 'ELECTRONICALLY_IN_BLEND' only if it was provided by a borrower completing a borrower workflow in Blend. If it is marked completed by a lender in Blend on behalf of a borrower, or via API actions, it will be set as 'OUTSIDE_OF_BLEND'.
6239    pub given_method: Option<String>,
6240}
6241impl std::fmt::Display for GetItpResponse {
6242    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6243        write!(f, "{}", serde_json::to_string(self).unwrap())
6244    }
6245}
6246#[derive(Debug, Serialize, Deserialize)]
6247pub struct ItpNotFoundError {
6248    #[serde(rename = "error")]
6249    pub error: String,
6250    #[serde(rename = "display")]
6251    pub display: String,
6252    #[serde(rename = "trackingId")]
6253    pub tracking_id: Option<String>,
6254}
6255impl std::fmt::Display for ItpNotFoundError {
6256    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6257        write!(f, "{}", serde_json::to_string(self).unwrap())
6258    }
6259}
6260#[derive(Debug, Serialize, Deserialize)]
6261pub struct CustomFieldsObject {}
6262impl std::fmt::Display for CustomFieldsObject {
6263    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6264        write!(f, "{}", serde_json::to_string(self).unwrap())
6265    }
6266}
6267#[derive(Debug, Serialize, Deserialize)]
6268pub struct CustomMetadataObject {}
6269impl std::fmt::Display for CustomMetadataObject {
6270    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6271        write!(f, "{}", serde_json::to_string(self).unwrap())
6272    }
6273}
6274#[derive(Debug, Serialize, Deserialize)]
6275pub struct CreatedByObject {
6276    #[serde(rename = "userId")]
6277    pub user_id: String,
6278    #[serde(rename = "type")]
6279    pub type_: Option<String>,
6280}
6281impl std::fmt::Display for CreatedByObject {
6282    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6283        write!(f, "{}", serde_json::to_string(self).unwrap())
6284    }
6285}
6286#[derive(Debug, Serialize, Deserialize)]
6287pub struct VerifiedEmployersSchema {
6288    #[serde(rename = "verifiedEmployers")]
6289    pub verified_employers: Option<Vec<VerifiedEmployersSummarySchema>>,
6290}
6291impl std::fmt::Display for VerifiedEmployersSchema {
6292    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6293        write!(f, "{}", serde_json::to_string(self).unwrap())
6294    }
6295}
6296#[derive(Debug, Serialize, Deserialize)]
6297pub struct VerifiedEmployersSummarySchema {
6298    #[serde(rename = "partyId")]
6299    ///The UUID of the partyId.
6300    pub party_id: String,
6301    #[serde(rename = "employerDetails")]
6302    ///Summary of Verified Employer object per borrower on an application.
6303    pub employer_details: Option<Vec<VerifiedEmployerObjectSchema>>,
6304}
6305impl std::fmt::Display for VerifiedEmployersSummarySchema {
6306    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6307        write!(f, "{}", serde_json::to_string(self).unwrap())
6308    }
6309}
6310#[derive(Debug, Serialize, Deserialize)]
6311pub struct VerifiedEmployerObjectSchema {
6312    #[serde(rename = "status")]
6313    ///Outcome of the employer verification.
6314    pub status: Option<String>,
6315    #[serde(rename = "employerName")]
6316    ///Name of the verified employer.
6317    pub employer_name: Option<String>,
6318    #[serde(rename = "employerId")]
6319    ///The UUID of the employerId.
6320    pub employer_id: String,
6321}
6322impl std::fmt::Display for VerifiedEmployerObjectSchema {
6323    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6324        write!(f, "{}", serde_json::to_string(self).unwrap())
6325    }
6326}
6327#[derive(Debug, Serialize, Deserialize)]
6328pub struct EmployersReverifyRequestSchema {
6329    #[serde(rename = "applicationId")]
6330    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
6331    pub application_id: String,
6332    #[serde(rename = "partyId")]
6333    ///The UUID of the partyId.
6334    pub party_id: String,
6335    #[serde(rename = "employerIds")]
6336    ///These are the employers that a reverify will be initiated for.
6337    pub employer_ids: Vec<String>,
6338}
6339impl std::fmt::Display for EmployersReverifyRequestSchema {
6340    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6341        write!(f, "{}", serde_json::to_string(self).unwrap())
6342    }
6343}
6344#[derive(Debug, Serialize, Deserialize)]
6345pub struct ConsumerLendingNameSchema {
6346    #[serde(rename = "firstName")]
6347    pub first_name: Option<String>,
6348    #[serde(rename = "middleName")]
6349    pub middle_name: Option<String>,
6350    #[serde(rename = "lastName")]
6351    pub last_name: Option<String>,
6352    #[serde(rename = "suffix")]
6353    pub suffix: Option<String>,
6354}
6355impl std::fmt::Display for ConsumerLendingNameSchema {
6356    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6357        write!(f, "{}", serde_json::to_string(self).unwrap())
6358    }
6359}
6360#[derive(Debug, Serialize, Deserialize)]
6361pub struct ConsumerLendingPhoneNumberSchema {
6362    #[serde(rename = "type")]
6363    ///Type of phone number
6364    pub type_: String,
6365    #[serde(rename = "number")]
6366    ///Phone number
6367    pub number: f64,
6368}
6369impl std::fmt::Display for ConsumerLendingPhoneNumberSchema {
6370    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6371        write!(f, "{}", serde_json::to_string(self).unwrap())
6372    }
6373}
6374#[derive(Debug, Serialize, Deserialize)]
6375pub struct ConsumerLendingIdentityEvaluationSchema {
6376    #[serde(rename = "externalReferenceId")]
6377    ///Identity evaluation external reference ID
6378    pub external_reference_id: Option<String>,
6379    #[serde(rename = "status")]
6380    ///Identity evaluation status
6381    pub status: Option<String>,
6382    #[serde(rename = "score")]
6383    ///Identity evaluation score
6384    pub score: Option<f64>,
6385    #[serde(rename = "outcome")]
6386    ///Identity evaluation outcome
6387    pub outcome: Option<String>,
6388    #[serde(rename = "providerMetadata")]
6389    ///Provider metadata
6390    pub provider_metadata: Option<serde_json::Value>,
6391    #[serde(rename = "userMetadata")]
6392    ///User metadata
6393    pub user_metadata: Option<serde_json::Value>,
6394}
6395impl std::fmt::Display for ConsumerLendingIdentityEvaluationSchema {
6396    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6397        write!(f, "{}", serde_json::to_string(self).unwrap())
6398    }
6399}
6400#[derive(Debug, Serialize, Deserialize)]
6401pub struct ConsumerLendingAddressSchema {
6402    #[serde(rename = "streetAddressLine1")]
6403    pub street_address_line1: Option<String>,
6404    #[serde(rename = "streetAddressLine2")]
6405    pub street_address_line2: Option<String>,
6406    #[serde(rename = "city")]
6407    pub city: Option<String>,
6408    #[serde(rename = "county")]
6409    pub county: Option<String>,
6410    #[serde(rename = "state")]
6411    ///Two-character US state code
6412    pub state: Option<String>,
6413    #[serde(rename = "zipCode")]
6414    ///Five-digit US zip code
6415    pub zip_code: Option<String>,
6416}
6417impl std::fmt::Display for ConsumerLendingAddressSchema {
6418    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6419        write!(f, "{}", serde_json::to_string(self).unwrap())
6420    }
6421}
6422#[derive(Debug, Serialize, Deserialize)]
6423pub struct ConsumerLendingResidenceSchema {
6424    #[serde(rename = "type")]
6425    pub type_: String,
6426    #[serde(rename = "residencyType")]
6427    ///Residency type
6428    pub residency_type: Option<String>,
6429    #[serde(rename = "address")]
6430    ///Address
6431    pub address: ConsumerLendingAddressSchema,
6432    #[serde(rename = "moveInDate")]
6433    ///Move in date in ISO 8601 format
6434    pub move_in_date: Option<String>,
6435    #[serde(rename = "moveOutDate")]
6436    ///Move out date in ISO 8601 format
6437    pub move_out_date: Option<String>,
6438    #[serde(rename = "residencyDurationYears")]
6439    ///Number of years in residency
6440    pub residency_duration_years: Option<f64>,
6441    #[serde(rename = "residencyDurationMonths")]
6442    ///Number of months (in excess of number of years) in residency
6443    pub residency_duration_months: Option<f64>,
6444    #[serde(rename = "monthlyRent")]
6445    ///Monthly rent
6446    pub monthly_rent: Option<f64>,
6447}
6448impl std::fmt::Display for ConsumerLendingResidenceSchema {
6449    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6450        write!(f, "{}", serde_json::to_string(self).unwrap())
6451    }
6452}
6453#[derive(Debug, Serialize, Deserialize)]
6454pub struct ConsumerLendingOwnedPropertySchema {
6455    #[serde(rename = "type")]
6456    pub type_: String,
6457    #[serde(rename = "usageType")]
6458    ///Usage type
6459    pub usage_type: String,
6460    #[serde(rename = "dispositionType")]
6461    ///Disposition type
6462    pub disposition_type: Option<String>,
6463    #[serde(rename = "address")]
6464    ///Address
6465    pub address: ConsumerLendingAddressSchema,
6466    #[serde(rename = "presentMarketValue")]
6467    ///Present market value
6468    pub present_market_value: f64,
6469    #[serde(rename = "monthlyMortgagePayments")]
6470    ///Monthly mortgage payments
6471    pub monthly_mortgage_payments: Option<Vec<f64>>,
6472    #[serde(rename = "mortgageBalance")]
6473    ///Mortgage balance
6474    pub mortgage_balance: Option<f64>,
6475    #[serde(rename = "grossRentalIncome")]
6476    ///Gross rental income
6477    pub gross_rental_income: Option<f64>,
6478}
6479impl std::fmt::Display for ConsumerLendingOwnedPropertySchema {
6480    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6481        write!(f, "{}", serde_json::to_string(self).unwrap())
6482    }
6483}
6484#[derive(Debug, Serialize, Deserialize)]
6485pub struct ConsumerLendingEmploymentOwnershipSchema {
6486    #[serde(rename = "ownershipType")]
6487    ///Ownership type
6488    pub ownership_type: Option<String>,
6489    #[serde(rename = "ownershipPercentage")]
6490    ///Ownership percentage
6491    pub ownership_percentage: Option<f64>,
6492}
6493impl std::fmt::Display for ConsumerLendingEmploymentOwnershipSchema {
6494    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6495        write!(f, "{}", serde_json::to_string(self).unwrap())
6496    }
6497}
6498#[derive(Debug, Serialize, Deserialize)]
6499pub struct ConsumerLendingIncomeSchema {
6500    #[serde(rename = "type")]
6501    pub type_: Option<String>,
6502    #[serde(rename = "yearlyIncome")]
6503    ///Yearly income
6504    pub yearly_income: Option<f64>,
6505    #[serde(rename = "description")]
6506    ///Description of income source
6507    pub description: Option<String>,
6508}
6509impl std::fmt::Display for ConsumerLendingIncomeSchema {
6510    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6511        write!(f, "{}", serde_json::to_string(self).unwrap())
6512    }
6513}
6514#[derive(Debug, Serialize, Deserialize)]
6515pub struct ConsumerLendingEmployerSchema {
6516    #[serde(rename = "status")]
6517    pub status: String,
6518    #[serde(rename = "type")]
6519    pub type_: Option<String>,
6520    #[serde(rename = "name")]
6521    pub name: Option<String>,
6522    #[serde(rename = "employerSEGCode")]
6523    ///Employer SEG code
6524    pub employer_seg_code: Option<String>,
6525    #[serde(rename = "address")]
6526    ///Address
6527    pub address: ConsumerLendingAddressSchema,
6528    #[serde(rename = "phoneNumber")]
6529    pub phone_number: Option<f64>,
6530    #[serde(rename = "title")]
6531    pub title: Option<String>,
6532    #[serde(rename = "startDate")]
6533    ///Start date in ISO 8601 format
6534    pub start_date: Option<String>,
6535    #[serde(rename = "endDate")]
6536    ///End date in ISO 8601 format
6537    pub end_date: Option<String>,
6538    #[serde(rename = "hoursPerWeek")]
6539    ///Hours per week
6540    pub hours_per_week: Option<f64>,
6541    #[serde(rename = "monthsOnJob")]
6542    ///Number of months on the job
6543    pub months_on_job: Option<f64>,
6544    #[serde(rename = "yearsInProfession")]
6545    ///Number of years in profession
6546    pub years_in_profession: Option<f64>,
6547    #[serde(rename = "ownership")]
6548    ///Employer ownership
6549    pub ownership: Option<ConsumerLendingEmploymentOwnershipSchema>,
6550    #[serde(rename = "incomes")]
6551    pub incomes: Option<Vec<ConsumerLendingIncomeSchema>>,
6552}
6553impl std::fmt::Display for ConsumerLendingEmployerSchema {
6554    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6555        write!(f, "{}", serde_json::to_string(self).unwrap())
6556    }
6557}
6558#[derive(Debug, Serialize, Deserialize)]
6559pub struct ConsumerLendingLiabilitySchema {
6560    #[serde(rename = "type")]
6561    pub type_: String,
6562    #[serde(rename = "monthlyPayment")]
6563    ///Monthly payment
6564    pub monthly_payment: f64,
6565    #[serde(rename = "monthsLeftToPay")]
6566    ///Months left to pay
6567    pub months_left_to_pay: f64,
6568    #[serde(rename = "unpaidBalance")]
6569    ///Unpaid balance
6570    pub unpaid_balance: f64,
6571}
6572impl std::fmt::Display for ConsumerLendingLiabilitySchema {
6573    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6574        write!(f, "{}", serde_json::to_string(self).unwrap())
6575    }
6576}
6577#[derive(Debug, Serialize, Deserialize)]
6578pub struct ConsumerLendingDeclarationSchema {
6579    #[serde(rename = "type")]
6580    pub type_: String,
6581    #[serde(rename = "indicator")]
6582    pub indicator: Option<bool>,
6583    #[serde(rename = "explanation")]
6584    pub explanation: Option<String>,
6585    #[serde(rename = "spouseAddress")]
6586    pub spouse_address: Option<PartialAddressSchema>,
6587    #[serde(rename = "firstName")]
6588    pub first_name: Option<String>,
6589    #[serde(rename = "middleName")]
6590    pub middle_name: Option<String>,
6591    #[serde(rename = "lastName")]
6592    pub last_name: Option<String>,
6593    #[serde(rename = "suffixName")]
6594    pub suffix_name: Option<String>,
6595}
6596impl std::fmt::Display for ConsumerLendingDeclarationSchema {
6597    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6598        write!(f, "{}", serde_json::to_string(self).unwrap())
6599    }
6600}
6601#[derive(Debug, Serialize, Deserialize)]
6602pub struct ConsumerLendingBorrowerSchema {
6603    #[serde(rename = "id")]
6604    ///Borrower ID
6605    pub id: String,
6606    #[serde(rename = "memberId")]
6607    ///Member ID
6608    pub member_id: Option<String>,
6609    #[serde(rename = "type")]
6610    ///Borrower type
6611    pub type_: String,
6612    #[serde(rename = "name")]
6613    pub name: ConsumerLendingNameSchema,
6614    #[serde(rename = "email")]
6615    pub email: String,
6616    #[serde(rename = "phoneNumbers")]
6617    pub phone_numbers: Vec<ConsumerLendingPhoneNumberSchema>,
6618    #[serde(rename = "birthDate")]
6619    ///Birth date in ISO 8601 format
6620    pub birth_date: Option<String>,
6621    #[serde(rename = "ssn")]
6622    ///Social Security Number
6623    pub ssn: Option<String>,
6624    #[serde(rename = "creditReport")]
6625    ///Credit report
6626    pub credit_report: Option<String>,
6627    #[serde(rename = "identityEvaluations")]
6628    pub identity_evaluations: Option<Vec<ConsumerLendingIdentityEvaluationSchema>>,
6629    #[serde(rename = "citizenshipStatus")]
6630    pub citizenship_status: Option<String>,
6631    #[serde(rename = "maritalStatus")]
6632    ///Marital Status
6633    pub marital_status: Option<String>,
6634    #[serde(rename = "residences")]
6635    pub residences: Option<Vec<ConsumerLendingResidenceSchema>>,
6636    #[serde(rename = "ownedProperties")]
6637    pub owned_properties: Option<Vec<ConsumerLendingOwnedPropertySchema>>,
6638    #[serde(rename = "employers")]
6639    pub employers: Option<Vec<ConsumerLendingEmployerSchema>>,
6640    #[serde(rename = "otherIncomes")]
6641    pub other_incomes: Option<Vec<ConsumerLendingIncomeSchema>>,
6642    #[serde(rename = "liabilities")]
6643    pub liabilities: Option<Vec<ConsumerLendingLiabilitySchema>>,
6644    #[serde(rename = "declarations")]
6645    pub declarations: Option<Vec<ConsumerLendingDeclarationSchema>>,
6646    #[serde(rename = "consentToLenderContactGiven")]
6647    ///If set to true, consent is given to lender contact
6648    pub consent_to_lender_contact_given: Option<bool>,
6649    #[serde(rename = "econsent")]
6650    pub econsent: Option<EconsentSchema>,
6651    #[serde(rename = "creditConsent")]
6652    pub credit_consent: Option<EconsentSchema>,
6653    #[serde(rename = "creditConsentSoft")]
6654    pub credit_consent_soft: Option<EconsentSchema>,
6655}
6656impl std::fmt::Display for ConsumerLendingBorrowerSchema {
6657    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6658        write!(f, "{}", serde_json::to_string(self).unwrap())
6659    }
6660}
6661#[derive(Debug, Serialize, Deserialize)]
6662pub struct ConsumerLendingProductId(pub String);
6663#[derive(Debug, Serialize, Deserialize)]
6664pub struct ConsumerLendingLoanIdentifiersSchema {
6665    #[serde(rename = "losId")]
6666    ///The UUID or GUID of the current resource in the LOS AFTER initial export to the LOS. For loans this may match the loan reference number depending on the LOS and if the customer has selected to use only GUIDs instead of UUIDs in their LOS settings. For all other resources, it is the static identifier of this resource in the LOS.
6667    pub los_id: Option<String>,
6668    #[serde(rename = "crmId")]
6669    ///The unique identifier of the application in a lender's Customer Relationship Management (CRM) system (e.g. Salesforce, Velocify, etc.). This value should not change over time and should be used to connect the application's identity between Blend and the CRM.
6670    pub crm_id: Option<String>,
6671    #[serde(rename = "referenceNumber")]
6672    ///A mutable identifier of the application. Not safe to use to connect the application's identity across Blend and external systems because it can and (for most implementations) will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
6673    pub reference_number: Option<String>,
6674}
6675impl std::fmt::Display for ConsumerLendingLoanIdentifiersSchema {
6676    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6677        write!(f, "{}", serde_json::to_string(self).unwrap())
6678    }
6679}
6680#[derive(Debug, Serialize, Deserialize)]
6681pub enum ConsumerLendingLoanType {
6682    #[serde(rename = "AUTO")]
6683    Auto,
6684    #[serde(rename = "SPECIALTY_VEHICLE")]
6685    SpecialtyVehicle,
6686    #[serde(rename = "PERSONAL_LOAN")]
6687    PersonalLoan,
6688    #[serde(rename = "PERSONAL_LOC")]
6689    PersonalLoc,
6690    #[serde(rename = "CREDIT_CARD")]
6691    CreditCard,
6692}
6693#[derive(Debug, Serialize, Deserialize)]
6694pub enum ConsumerLendingLoanPurposeType {
6695    #[serde(rename = "PURCHASE")]
6696    Purchase,
6697    #[serde(rename = "REFINANCE")]
6698    Refinance,
6699    #[serde(rename = "LEASE_BUYOUT")]
6700    LeaseBuyout,
6701    #[serde(rename = "FUTURE_USE")]
6702    FutureUse,
6703    #[serde(rename = "DEBT_CONSOLIDATION")]
6704    DebtConsolidation,
6705    #[serde(rename = "HOME_IMPROVEMENT")]
6706    HomeImprovement,
6707    #[serde(rename = "MEDICAL_EXPENSES")]
6708    MedicalExpenses,
6709    #[serde(rename = "OTHER")]
6710    Other,
6711    #[serde(rename = "LIVING_EXPENSES")]
6712    LivingExpenses,
6713    #[serde(rename = "CASH_NEED")]
6714    CashNeed,
6715    #[serde(rename = "EDUCATION_EXPENSES")]
6716    EducationExpenses,
6717    #[serde(rename = "ESTABLISH_CREDIT")]
6718    EstablishCredit,
6719    #[serde(rename = "FAMILY_EVENT")]
6720    FamilyEvent,
6721    #[serde(rename = "GIFT")]
6722    Gift,
6723    #[serde(rename = "MAJOR_PURCHASES")]
6724    MajorPurchases,
6725    #[serde(rename = "MEDICAL_NURSING_CARE")]
6726    MedicalNursingCare,
6727    #[serde(rename = "TAXES_LEGAL_FEES")]
6728    TaxesLegalFees,
6729    #[serde(rename = "VACATION_TRIP")]
6730    VacationTrip,
6731    #[serde(rename = "VEHICLE_REPAIR")]
6732    VehicleRepair,
6733}
6734#[derive(Debug, Serialize, Deserialize)]
6735pub enum ConsumerLendingRefinanceType {
6736    #[serde(rename = "LOAN")]
6737    Loan,
6738    #[serde(rename = "CASH_OUT")]
6739    CashOut,
6740}
6741#[derive(Debug, Serialize, Deserialize)]
6742pub struct ConsumerLendingCollateralSchema {
6743    #[serde(rename = "type")]
6744    pub type_: Option<String>,
6745    #[serde(rename = "primary")]
6746    pub primary: Option<bool>,
6747    #[serde(rename = "vehicle")]
6748    pub vehicle: Option<ConsumerLendingVehicleSchema>,
6749    #[serde(rename = "account")]
6750    pub account: Option<ConsumerLendingAccountSchema>,
6751}
6752impl std::fmt::Display for ConsumerLendingCollateralSchema {
6753    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6754        write!(f, "{}", serde_json::to_string(self).unwrap())
6755    }
6756}
6757#[derive(Debug, Serialize, Deserialize)]
6758pub struct ConsumerLendingAccountSchema {
6759    #[serde(rename = "accountNumber")]
6760    pub account_number: Option<String>,
6761    #[serde(rename = "holdAmount")]
6762    pub hold_amount: Option<f64>,
6763}
6764impl std::fmt::Display for ConsumerLendingAccountSchema {
6765    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6766        write!(f, "{}", serde_json::to_string(self).unwrap())
6767    }
6768}
6769#[derive(Debug, Serialize, Deserialize)]
6770pub struct ConsumerLendingVehicleSchema {
6771    #[serde(rename = "condition")]
6772    pub condition: Option<String>,
6773    #[serde(rename = "purchaseLocation")]
6774    pub purchase_location: Option<String>,
6775    #[serde(rename = "category")]
6776    pub category: Option<String>,
6777    #[serde(rename = "type")]
6778    pub type_: Option<String>,
6779    #[serde(rename = "year")]
6780    pub year: Option<f64>,
6781    #[serde(rename = "make")]
6782    pub make: Option<String>,
6783    #[serde(rename = "model")]
6784    pub model: Option<String>,
6785    #[serde(rename = "trim")]
6786    pub trim: Option<String>,
6787    #[serde(rename = "mileage")]
6788    pub mileage: Option<f64>,
6789    #[serde(rename = "valuation")]
6790    ///The property's value in dollars and cents
6791    pub valuation: Option<f64>,
6792    #[serde(rename = "identificationNumber")]
6793    pub identification_number: Option<String>,
6794    #[serde(rename = "salesPrice")]
6795    ///Sales price for the loan
6796    pub sales_price: Option<f64>,
6797}
6798impl std::fmt::Display for ConsumerLendingVehicleSchema {
6799    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6800        write!(f, "{}", serde_json::to_string(self).unwrap())
6801    }
6802}
6803#[derive(Debug, Serialize, Deserialize)]
6804pub struct ConsumerLendingApplicationDecisionSchema {
6805    #[serde(rename = "updatedDate")]
6806    pub updated_date: String,
6807    #[serde(rename = "status")]
6808    pub status: String,
6809    #[serde(rename = "source")]
6810    pub source: String,
6811    #[serde(rename = "amount")]
6812    pub amount: Option<f64>,
6813    #[serde(rename = "apr")]
6814    pub apr: Option<f64>,
6815    #[serde(rename = "monthlyPayment")]
6816    pub monthly_payment: Option<f64>,
6817    #[serde(rename = "termMonths")]
6818    pub term_months: Option<f64>,
6819    #[serde(rename = "productOffering")]
6820    pub product_offering: Option<String>,
6821    #[serde(rename = "policySnapshot")]
6822    pub policy_snapshot: Option<serde_json::Value>,
6823    #[serde(rename = "attributes")]
6824    pub attributes: Option<serde_json::Value>,
6825    #[serde(rename = "result")]
6826    pub result: Option<serde_json::Value>,
6827}
6828impl std::fmt::Display for ConsumerLendingApplicationDecisionSchema {
6829    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6830        write!(f, "{}", serde_json::to_string(self).unwrap())
6831    }
6832}
6833#[derive(Debug, Serialize, Deserialize)]
6834pub struct ConsumerLendingApplicationSchema {
6835    #[serde(rename = "id")]
6836    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
6837    pub id: String,
6838    #[serde(rename = "productId")]
6839    ///The product id for the associated loan
6840    pub product_id: Option<String>,
6841    #[serde(rename = "applicationStatus")]
6842    ///An enum for the status of the application.
6843    pub application_status: Option<String>,
6844    #[serde(rename = "loanIdentifiers")]
6845    pub loan_identifiers: Option<ConsumerLendingLoanIdentifiersSchema>,
6846    #[serde(rename = "loanType")]
6847    pub loan_type: String,
6848    #[serde(rename = "loanPurposeType")]
6849    pub loan_purpose_type: Option<String>,
6850    #[serde(rename = "refinanceType")]
6851    ///Only applicable if loanPurposeType is REFINANCE
6852    pub refinance_type: Option<String>,
6853    #[serde(rename = "borrowers")]
6854    pub borrowers: Vec<ConsumerLendingBorrowerSchema>,
6855    #[serde(rename = "loanAmount")]
6856    ///The amount of money (dollars and cents) for which the applicant is applying
6857    pub loan_amount: Option<f64>,
6858    #[serde(rename = "loanTermMonths")]
6859    ///The term of the loan in months
6860    pub loan_term_months: Option<f64>,
6861    #[serde(rename = "isFlexibleLoanTerms")]
6862    ///Whether the applicant is flexible in their loan amount and terms
6863    pub is_flexible_loan_terms: Option<bool>,
6864    #[serde(rename = "autopayFromChecking")]
6865    ///Whether the applicant wants to setup autopay from their checking account
6866    pub autopay_from_checking: Option<bool>,
6867    #[serde(rename = "lender")]
6868    pub lender: Option<String>,
6869    #[serde(rename = "collaterals")]
6870    pub collaterals: Option<Vec<ConsumerLendingCollateralSchema>>,
6871    #[serde(rename = "primaryAssignedLoanOfficer")]
6872    pub primary_assigned_loan_officer: Option<serde_json::Value>,
6873    #[serde(rename = "decision")]
6874    ///Application decision
6875    pub decision: Option<ConsumerLendingApplicationDecisionSchema>,
6876    #[serde(rename = "promoCode")]
6877    pub promo_code: Option<String>,
6878    #[serde(rename = "appSource")]
6879    ///The tag corresponding to a marketing campaign. This identifier can be used to gauge which links are most effective within certain campaigns.
6880    pub app_source: Option<String>,
6881    #[serde(rename = "inLenderNetwork")]
6882    ///Whether the applicant is in the lenders network
6883    pub in_lender_network: Option<bool>,
6884    #[serde(rename = "newRentalLease")]
6885    ///Whether the applicant has a new rental lease
6886    pub new_rental_lease: Option<bool>,
6887}
6888impl std::fmt::Display for ConsumerLendingApplicationSchema {
6889    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6890        write!(f, "{}", serde_json::to_string(self).unwrap())
6891    }
6892}
6893#[derive(Debug, Serialize, Deserialize)]
6894pub struct RetrieveRonEligibilityPostRequest {
6895    #[serde(rename = "address")]
6896    ///The provided address will be validated via a 3rd party API. If the provided address is not found (i.e. invalid address), we will do our best to provide eligibility information on parts that we can find. It is possible for multiple addresses to be returned in the response if provided address is ambiguous. It is possible for a slightly different address to be returned if a correction has been made to the original address input during validation.
6897    pub address: RonEligibilityAddressSchema,
6898    #[serde(rename = "titleAgency")]
6899    ///The title agency involved in the real estate transaction. Blend will attempt to look up underwriters working with the provided title agency and return eligibility information on whether the underwriter(s) will insure RON in the state where the address is located. If a title agency is not provided or we're not able to find a underwriter match, information on all major underwriters will be returned.
6900    pub title_agency: Option<String>,
6901    #[serde(rename = "options")]
6902    ///Request configuration options.
6903    pub options: Option<RonEligibilityRequestOptions>,
6904}
6905impl std::fmt::Display for RetrieveRonEligibilityPostRequest {
6906    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6907        write!(f, "{}", serde_json::to_string(self).unwrap())
6908    }
6909}
6910#[derive(Debug, Serialize, Deserialize)]
6911pub struct RonEligibilityAddressSchema {
6912    #[serde(rename = "streetAddressLine1")]
6913    ///Street address.
6914    pub street_address_line1: String,
6915    #[serde(rename = "streetAddressLine2")]
6916    ///Apartment / unit / suite number or other address designations.
6917    pub street_address_line2: Option<String>,
6918    #[serde(rename = "city")]
6919    pub city: String,
6920    #[serde(rename = "state")]
6921    ///Two-character US state code.
6922    pub state: String,
6923    #[serde(rename = "countyName")]
6924    pub county_name: Option<String>,
6925    #[serde(rename = "zipCode")]
6926    ///Five-digit US zip code.
6927    pub zip_code: String,
6928}
6929impl std::fmt::Display for RonEligibilityAddressSchema {
6930    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6931        write!(f, "{}", serde_json::to_string(self).unwrap())
6932    }
6933}
6934#[derive(Debug, Serialize, Deserialize)]
6935pub struct RonEligibilityRequestOptions {
6936    #[serde(rename = "match")]
6937    ///The address matching type. Defaults to 'loose' if not provided. 'loose' uses a relaxed matching algorithm during address validation. Will attempt to return a validated address match for invalid address inputs. 'strict' uses a more aggressive matching algorithm during address validation. Will not return a validated address match for invalid address inputs.
6938    pub match_: Option<String>,
6939}
6940impl std::fmt::Display for RonEligibilityRequestOptions {
6941    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6942        write!(f, "{}", serde_json::to_string(self).unwrap())
6943    }
6944}
6945#[derive(Debug, Serialize, Deserialize)]
6946pub struct RetrieveRonEligibilityResponse {
6947    #[serde(rename = "addressesWithEligibility")]
6948    pub addresses_with_eligibility: Option<Vec<AddressRonEligibilityResponse>>,
6949}
6950impl std::fmt::Display for RetrieveRonEligibilityResponse {
6951    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6952        write!(f, "{}", serde_json::to_string(self).unwrap())
6953    }
6954}
6955#[derive(Debug, Serialize, Deserialize)]
6956pub struct UnderwritersRonEligibilityResponseObject {
6957    #[serde(rename = "name")]
6958    ///Name of the underwriter entity
6959    pub name: Option<String>,
6960    #[serde(rename = "eligibility")]
6961    ///There are different components to look at to determine eligibility for a RON closing (i.e. state, county, underwriter), this describes the eligibility of a specific RON eligibility component. Possible options include: 'ELIGIBLE' - The component is eligible for a RON closing. 'INELIGIBLE' - The component is NOT eligible for a RON closing. 'UNKNOWN' - There is not enough information to determine whether the component is eligible or not.
6962    pub eligibility: Option<String>,
6963    #[serde(rename = "allowsOutOfStateNotary")]
6964    ///Whether the underwriter will recognize a RON for a property that will be performed by a notary who is commissioned in a state outside of where the property is located.
6965    pub allows_out_of_state_notary: Option<bool>,
6966}
6967impl std::fmt::Display for UnderwritersRonEligibilityResponseObject {
6968    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
6969        write!(f, "{}", serde_json::to_string(self).unwrap())
6970    }
6971}
6972#[derive(Debug, Serialize, Deserialize)]
6973pub struct AddressRonEligibilityResponse {
6974    #[serde(rename = "underwriters")]
6975    pub underwriters: Vec<UnderwritersRonEligibilityResponseObject>,
6976    #[serde(rename = "countyEligibility")]
6977    ///There are different components to look at to determine eligibility for a RON closing (i.e. state, county, underwriter), this describes the eligibility of a specific RON eligibility component. Possible options include: 'ELIGIBLE' - The component is eligible for a RON closing. 'INELIGIBLE' - The component is NOT eligible for a RON closing. 'UNKNOWN' - There is not enough information to determine whether the component is eligible or not.
6978    pub county_eligibility: String,
6979    #[serde(rename = "stateEligibility")]
6980    ///There are different components to look at to determine eligibility for a RON closing (i.e. state, county, underwriter), this describes the eligibility of a specific RON eligibility component. Possible options include: 'ELIGIBLE' - The component is eligible for a RON closing. 'INELIGIBLE' - The component is NOT eligible for a RON closing. 'UNKNOWN' - There is not enough information to determine whether the component is eligible or not.
6981    pub state_eligibility: String,
6982    #[serde(rename = "streetAddressLine1")]
6983    ///Street address
6984    pub street_address_line1: String,
6985    #[serde(rename = "streetAddressLine2")]
6986    ///Apartment / unit / suite number or other address designations
6987    pub street_address_line2: Option<String>,
6988    #[serde(rename = "city")]
6989    pub city: String,
6990    #[serde(rename = "state")]
6991    ///Two-character US state code
6992    pub state: String,
6993    #[serde(rename = "countyName")]
6994    ///If the county name is provided in the request, the address will not be validated. We will directly look up the eligibility of the state and county provided in the request.
6995    pub county_name: String,
6996    #[serde(rename = "countyFIPS")]
6997    ///Five-digit US county code
6998    pub county_fips: String,
6999    #[serde(rename = "zipCode")]
7000    ///Five-digit US zip code
7001    pub zip_code: String,
7002}
7003impl std::fmt::Display for AddressRonEligibilityResponse {
7004    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7005        write!(f, "{}", serde_json::to_string(self).unwrap())
7006    }
7007}
7008#[derive(Debug, Serialize, Deserialize)]
7009pub enum RonEligibility {
7010    #[serde(rename = "ELIGIBLE")]
7011    Eligible,
7012    #[serde(rename = "INELIGIBLE")]
7013    Ineligible,
7014    #[serde(rename = "UNKNOWN")]
7015    Unknown,
7016}
7017#[derive(Debug, Serialize, Deserialize)]
7018pub struct OAuthTokenRequestSchema {
7019    #[serde(rename = "client_id")]
7020    ///The ID of the user making API requests
7021    pub client_id: String,
7022    #[serde(rename = "client_secret")]
7023    ///The password of the user making API requests
7024    pub client_secret: String,
7025    #[serde(rename = "grant_type")]
7026    ///The OAuth grant type (should be client_credentials)
7027    pub grant_type: String,
7028}
7029impl std::fmt::Display for OAuthTokenRequestSchema {
7030    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7031        write!(f, "{}", serde_json::to_string(self).unwrap())
7032    }
7033}
7034#[derive(Debug, Serialize, Deserialize)]
7035pub struct OAuthTokenResponseSchema {
7036    #[serde(rename = "access_token")]
7037    ///The OAuth Token
7038    pub access_token: String,
7039    #[serde(rename = "token_type")]
7040    ///The type of token returned (i.e., Bearer)
7041    pub token_type: String,
7042    #[serde(rename = "expires_in")]
7043    ///The number of seconds until the token expires
7044    pub expires_in: f64,
7045}
7046impl std::fmt::Display for OAuthTokenResponseSchema {
7047    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7048        write!(f, "{}", serde_json::to_string(self).unwrap())
7049    }
7050}
7051#[derive(Debug, Serialize, Deserialize)]
7052pub struct OAuthErrorSchema {
7053    #[serde(rename = "error")]
7054    ///The OAuth error code
7055    pub error: String,
7056}
7057impl std::fmt::Display for OAuthErrorSchema {
7058    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7059        write!(f, "{}", serde_json::to_string(self).unwrap())
7060    }
7061}
7062#[derive(Debug, Serialize, Deserialize)]
7063pub struct CurrentUser {
7064    #[serde(rename = "isAuthenticated")]
7065    ///User authentication result
7066    pub is_authenticated: Option<bool>,
7067}
7068impl std::fmt::Display for CurrentUser {
7069    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7070        write!(f, "{}", serde_json::to_string(self).unwrap())
7071    }
7072}
7073#[derive(Debug, Serialize, Deserialize)]
7074pub struct LendingApplicationId(pub String);
7075#[derive(Debug, Serialize, Deserialize)]
7076pub struct LendingNameSchema {
7077    #[serde(rename = "firstName")]
7078    pub first_name: Option<String>,
7079    #[serde(rename = "middleName")]
7080    pub middle_name: Option<String>,
7081    #[serde(rename = "lastName")]
7082    pub last_name: Option<String>,
7083    #[serde(rename = "suffixName")]
7084    pub suffix_name: Option<String>,
7085}
7086impl std::fmt::Display for LendingNameSchema {
7087    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7088        write!(f, "{}", serde_json::to_string(self).unwrap())
7089    }
7090}
7091#[derive(Debug, Serialize, Deserialize)]
7092pub struct LendingPartyResponseSchema {
7093    #[serde(rename = "id")]
7094    ///The UUID of the Party in Blend's system. The static identifier that should be used to connect the party's identity across Blend and external integrations.
7095    pub id: String,
7096    #[serde(rename = "applicationId")]
7097    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
7098    pub application_id: String,
7099    #[serde(rename = "type")]
7100    pub type_: String,
7101    #[serde(rename = "email")]
7102    pub email: Option<String>,
7103    #[serde(rename = "name")]
7104    pub name: Option<LendingNameSchema>,
7105    #[serde(rename = "losPartyId")]
7106    ///Party ID in LOS
7107    pub los_party_id: Option<String>,
7108    #[serde(rename = "econsent")]
7109    pub econsent: Option<serde_json::Value>,
7110    #[serde(rename = "customFields")]
7111    pub custom_fields: Option<serde_json::Value>,
7112    #[serde(rename = "customMetadata")]
7113    pub custom_metadata: Option<serde_json::Value>,
7114}
7115impl std::fmt::Display for LendingPartyResponseSchema {
7116    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7117        write!(f, "{}", serde_json::to_string(self).unwrap())
7118    }
7119}
7120#[derive(Debug, Serialize, Deserialize)]
7121pub struct LendingAddressSchema {
7122    #[serde(rename = "streetAddressLine1")]
7123    pub street_address_line1: String,
7124    #[serde(rename = "streetAddressLine2")]
7125    pub street_address_line2: Option<String>,
7126    #[serde(rename = "city")]
7127    pub city: String,
7128    #[serde(rename = "state")]
7129    ///Two-digit US state code
7130    pub state: String,
7131    #[serde(rename = "zipCode")]
7132    ///Five-digit US zip code
7133    pub zip_code: String,
7134    #[serde(rename = "zipCodePlusFour")]
7135    ///Four-digit additional US zip code numbers
7136    pub zip_code_plus_four: Option<String>,
7137    #[serde(rename = "countyName")]
7138    ///If the county name is provided in the request, the address will not be validated. We will directly look up the eligibility of the state and county provided in the request.
7139    pub county_name: Option<String>,
7140}
7141impl std::fmt::Display for LendingAddressSchema {
7142    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7143        write!(f, "{}", serde_json::to_string(self).unwrap())
7144    }
7145}
7146#[derive(Debug, Serialize, Deserialize)]
7147pub struct LendingPhoneNumberSchema {
7148    #[serde(rename = "phoneNumber")]
7149    ///String representation of phone number
7150    pub phone_number: Option<String>,
7151    #[serde(rename = "type")]
7152    ///Type of phone number
7153    pub type_: Option<String>,
7154}
7155impl std::fmt::Display for LendingPhoneNumberSchema {
7156    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7157        write!(f, "{}", serde_json::to_string(self).unwrap())
7158    }
7159}
7160#[derive(Debug, Serialize, Deserialize)]
7161pub struct EmptyStringSchema(pub String);
7162#[derive(Debug, Serialize, Deserialize)]
7163pub struct LendingDocumentSchema {
7164    #[serde(rename = "id")]
7165    ///The UUID of the Document in Blend's system. The static identifier that should be used to connect the document's identity across Blend and external integrations.
7166    pub id: Option<String>,
7167    #[serde(rename = "name")]
7168    ///Document Filename
7169    pub name: Option<String>,
7170    #[serde(rename = "type")]
7171    ///Blend document type
7172    pub type_: Option<String>,
7173    #[serde(rename = "applicationId")]
7174    ///The UUID of the application in Blend's system. The static identifier that should be used to connect the application's identity across Blend and external integrations.
7175    pub application_id: Option<String>,
7176    #[serde(rename = "losType")]
7177    ///LOS document type (used with Blend document templating)
7178    pub los_type: Option<String>,
7179    #[serde(rename = "losTypeId")]
7180    ///LOS document id (used for external tracking)
7181    pub los_type_id: Option<String>,
7182    #[serde(rename = "created")]
7183    ///UTC Timestamp of document creation
7184    pub created: Option<String>,
7185    #[serde(rename = "partyIds")]
7186    ///UUIDs of the Parties associated with this document
7187    pub party_ids: Option<Vec<String>>,
7188    #[serde(rename = "downloadUrl")]
7189    ///URL where the Document can be Downloaded from
7190    pub download_url: Option<String>,
7191    #[serde(rename = "lastExportedAt")]
7192    ///UTC Timestamp of last export for document
7193    pub last_exported_at: Option<String>,
7194    #[serde(rename = "text")]
7195    ///Description used in UI
7196    pub text: Option<String>,
7197    #[serde(rename = "category")]
7198    ///Document's hierarchical category
7199    pub category: Option<String>,
7200    #[serde(rename = "signerInfo")]
7201    pub signer_info: Option<Vec<serde_json::Value>>,
7202    #[serde(rename = "customFields")]
7203    ///Custom fields on GET responses for supported resources
7204    pub custom_fields: Option<LendingCustomFields>,
7205    #[serde(rename = "customMetadata")]
7206    ///Custom metadata on GET responses for supported resources
7207    pub custom_metadata: Option<LendingCustomMetadata>,
7208    #[serde(rename = "additionalEntities")]
7209    ///Additional entities ids associated with the document
7210    pub additional_entities: Option<serde_json::Value>,
7211}
7212impl std::fmt::Display for LendingDocumentSchema {
7213    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7214        write!(f, "{}", serde_json::to_string(self).unwrap())
7215    }
7216}
7217#[derive(Debug, Serialize, Deserialize)]
7218pub struct LendingPostEconsentSchema {
7219    #[serde(rename = "status")]
7220    ///State of econsent
7221    pub status: String,
7222    #[serde(rename = "date")]
7223    ///UTC Timestamp of when Econsent was given. Optional. Null is accepted.
7224    pub date: Option<String>,
7225    #[serde(rename = "ip")]
7226    ///IP Address from which econsent was given. Optional. Null is accepted.
7227    pub ip: Option<String>,
7228}
7229impl std::fmt::Display for LendingPostEconsentSchema {
7230    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7231        write!(f, "{}", serde_json::to_string(self).unwrap())
7232    }
7233}
7234#[derive(Debug, Serialize, Deserialize)]
7235pub struct LosPartyId(pub String);
7236#[derive(Debug, Serialize, Deserialize)]
7237pub struct LendingSingleLosMilestoneSchema {
7238    #[serde(rename = "losMilestone")]
7239    ///ENUM describing that status of the application. The following milestones can be configured to be displayed to the Borrower on their landing page after submitting their application in Blend (SUBMITTED, PROCESSING, UNDERWRITING, CONDITIONAL APPROVAL, APPROVED, CLOSING, CLOSED, FUNDED). The other milestones are only visible to the lender application.
7240    pub los_milestone: String,
7241}
7242impl std::fmt::Display for LendingSingleLosMilestoneSchema {
7243    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7244        write!(f, "{}", serde_json::to_string(self).unwrap())
7245    }
7246}
7247#[derive(Debug, Serialize, Deserialize)]
7248pub enum LendingLosMilestoneName {
7249    #[serde(rename = "SUBMITTED")]
7250    Submitted,
7251    #[serde(rename = "PREQUALIFIED")]
7252    Prequalified,
7253    #[serde(rename = "PREAPPROVED")]
7254    Preapproved,
7255    #[serde(rename = "PROCESSING")]
7256    Processing,
7257    #[serde(rename = "UNDERWRITING")]
7258    Underwriting,
7259    #[serde(rename = "CONDITIONAL_APPROVAL")]
7260    ConditionalApproval,
7261    #[serde(rename = "APPROVED")]
7262    Approved,
7263    #[serde(rename = "CLOSING")]
7264    Closing,
7265    #[serde(rename = "CLOSED")]
7266    Closed,
7267    #[serde(rename = "APPRAISAL_ORDERED")]
7268    AppraisalOrdered,
7269    #[serde(rename = "APPRAISAL_RECEIVED")]
7270    AppraisalReceived,
7271    #[serde(rename = "CLEAR_TO_CLOSE")]
7272    ClearToClose,
7273    #[serde(rename = "DOCS_SENT")]
7274    DocsSent,
7275    #[serde(rename = "FUNDED")]
7276    Funded,
7277    #[serde(rename = "SET_UP")]
7278    SetUp,
7279    #[serde(rename = "DECISIONED")]
7280    Decisioned,
7281    #[serde(rename = "CONDITIONS_SUBMITTED")]
7282    ConditionsSubmitted,
7283    #[serde(rename = "APPRAISAL_APPROVED")]
7284    AppraisalApproved,
7285    #[serde(rename = "RATE_LOCKED")]
7286    RateLocked,
7287    #[serde(rename = "CLOSING_DISCLOSURE_SENT")]
7288    ClosingDisclosureSent,
7289    #[serde(rename = "DENIED")]
7290    Denied,
7291    #[serde(rename = "LOAN_ESTIMATE_SENT")]
7292    LoanEstimateSent,
7293}
7294#[derive(Debug, Serialize, Deserialize)]
7295pub struct LosMilestone {
7296    #[serde(rename = "name")]
7297    ///ENUM describing that status of the application. The following milestones can be configured to be displayed to the Borrower on their landing page after submitting their application in Blend (SUBMITTED, PROCESSING, UNDERWRITING, CONDITIONAL APPROVAL, APPROVED, CLOSING, CLOSED, FUNDED). The other milestones are only visible to the lender application.
7298    pub name: String,
7299    #[serde(rename = "lastUpdated")]
7300    ///UTC Timestamp of when the LOS Milestone was last updated
7301    pub last_updated: String,
7302}
7303impl std::fmt::Display for LosMilestone {
7304    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7305        write!(f, "{}", serde_json::to_string(self).unwrap())
7306    }
7307}
7308#[derive(Debug, Serialize, Deserialize)]
7309pub struct LendingCustomFields {
7310    #[serde(rename = "fieldName")]
7311    pub field_name: Option<serde_json::Value>,
7312}
7313impl std::fmt::Display for LendingCustomFields {
7314    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7315        write!(f, "{}", serde_json::to_string(self).unwrap())
7316    }
7317}
7318#[derive(Debug, Serialize, Deserialize)]
7319pub struct LendingCustomMetadata {
7320    #[serde(rename = "fieldName")]
7321    ///Custom fields on GET responses for supported resources
7322    pub field_name: Option<CustomFieldSchema>,
7323}
7324impl std::fmt::Display for LendingCustomMetadata {
7325    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7326        write!(f, "{}", serde_json::to_string(self).unwrap())
7327    }
7328}
7329#[derive(Debug, Serialize, Deserialize)]
7330pub struct LendingInternalServerErrorSchema {
7331    #[serde(rename = "error")]
7332    pub error: String,
7333    #[serde(rename = "display")]
7334    pub display: String,
7335    #[serde(rename = "trackingId")]
7336    pub tracking_id: Option<String>,
7337}
7338impl std::fmt::Display for LendingInternalServerErrorSchema {
7339    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7340        write!(f, "{}", serde_json::to_string(self).unwrap())
7341    }
7342}
7343#[derive(Debug, Serialize, Deserialize)]
7344pub struct LendingInvalidRequestErrorSchema {
7345    #[serde(rename = "error")]
7346    pub error: String,
7347    #[serde(rename = "display")]
7348    pub display: String,
7349    #[serde(rename = "trackingId")]
7350    pub tracking_id: String,
7351}
7352impl std::fmt::Display for LendingInvalidRequestErrorSchema {
7353    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7354        write!(f, "{}", serde_json::to_string(self).unwrap())
7355    }
7356}
7357#[derive(Debug, Serialize, Deserialize)]
7358pub struct LendingInvalidUpdateErrorSchema {
7359    #[serde(rename = "error")]
7360    pub error: String,
7361    #[serde(rename = "display")]
7362    pub display: String,
7363    #[serde(rename = "trackingId")]
7364    pub tracking_id: String,
7365}
7366impl std::fmt::Display for LendingInvalidUpdateErrorSchema {
7367    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7368        write!(f, "{}", serde_json::to_string(self).unwrap())
7369    }
7370}
7371#[derive(Debug, Serialize, Deserialize)]
7372pub struct LendingNotAuthorizedErrorSchema {
7373    #[serde(rename = "error")]
7374    pub error: String,
7375    #[serde(rename = "display")]
7376    pub display: Option<String>,
7377    #[serde(rename = "trackingId")]
7378    pub tracking_id: Option<String>,
7379}
7380impl std::fmt::Display for LendingNotAuthorizedErrorSchema {
7381    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7382        write!(f, "{}", serde_json::to_string(self).unwrap())
7383    }
7384}
7385#[derive(Debug, Serialize, Deserialize)]
7386pub struct LendingLenderRecordSchema {
7387    #[serde(rename = "name")]
7388    ///Lender Full Name
7389    pub name: Option<String>,
7390    #[serde(rename = "firstName")]
7391    ///Lender First Name
7392    pub first_name: Option<String>,
7393    #[serde(rename = "lastName")]
7394    ///Lender Last Name
7395    pub last_name: Option<String>,
7396    #[serde(rename = "email")]
7397    ///Lender Email
7398    pub email: Option<String>,
7399    #[serde(rename = "permittedSolutionSubTypes")]
7400    ///Set of allowable solution types
7401    pub permitted_solution_sub_types: Option<Vec<String>>,
7402    #[serde(rename = "requireTwoFactorAuth")]
7403    ///MFA Required
7404    pub require_two_factor_auth: bool,
7405    #[serde(rename = "loginMethod")]
7406    ///Login Method
7407    pub login_method: Option<String>,
7408    #[serde(rename = "roleNames")]
7409    ///Roles for Lender
7410    pub role_names: Option<Vec<String>>,
7411    #[serde(rename = "phone")]
7412    pub phone: Option<serde_json::Value>,
7413    #[serde(rename = "nmlsId")]
7414    ///Nationwide Multistate Licensing System ID number
7415    pub nmls_id: Option<String>,
7416    #[serde(rename = "losUsername")]
7417    ///Lender's LOS Username
7418    pub los_username: Option<String>,
7419    #[serde(rename = "employeeId")]
7420    ///Lender's Employee Id
7421    pub employee_id: Option<String>,
7422    #[serde(rename = "branchId")]
7423    ///Lender's Branch Id
7424    pub branch_id: Option<String>,
7425    #[serde(rename = "id")]
7426    ///The UUID of the Lender User in Blend's system. The static identifier that should be used to connect the user's identity across Blend and external integrations.
7427    pub id: String,
7428    #[serde(rename = "status")]
7429    ///The user's status in Blend
7430    pub status: String,
7431    #[serde(rename = "creditInternalAccountIdentifiers")]
7432    ///List of all the active creditInternalAccountIdentifiers
7433    pub credit_internal_account_identifiers: Option<
7434        Vec<LendingCreditInternalAccountIdentifiers>,
7435    >,
7436    #[serde(rename = "licensedStates")]
7437    ///States Lender is licensed in
7438    pub licensed_states: Option<Vec<String>>,
7439}
7440impl std::fmt::Display for LendingLenderRecordSchema {
7441    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7442        write!(f, "{}", serde_json::to_string(self).unwrap())
7443    }
7444}
7445#[derive(Debug, Serialize, Deserialize)]
7446pub struct LendingCreditInternalAccountIdentifiers {
7447    #[serde(rename = "pullType")]
7448    ///Pull type
7449    pub pull_type: String,
7450    #[serde(rename = "creditPullScenario")]
7451    ///Credit Pull Scenario
7452    pub credit_pull_scenario: String,
7453    #[serde(rename = "creditProvider")]
7454    ///Credit Provider
7455    pub credit_provider: String,
7456    #[serde(rename = "creditAccountIdentifier")]
7457    ///Credit Account Identifier
7458    pub credit_account_identifier: String,
7459}
7460impl std::fmt::Display for LendingCreditInternalAccountIdentifiers {
7461    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7462        write!(f, "{}", serde_json::to_string(self).unwrap())
7463    }
7464}
7465#[derive(Debug, Serialize, Deserialize)]
7466pub struct NotFoundErrorSchema {
7467    #[serde(rename = "error")]
7468    pub error: String,
7469    #[serde(rename = "display")]
7470    pub display: String,
7471    #[serde(rename = "trackingId")]
7472    pub tracking_id: String,
7473}
7474impl std::fmt::Display for NotFoundErrorSchema {
7475    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
7476        write!(f, "{}", serde_json::to_string(self).unwrap())
7477    }
7478}
7479#[derive(Debug, Serialize, Deserialize)]
7480pub struct LendingConflictErrorSchema(pub serde_json::Value);