Skip to content

Commit 44d890e

Browse files
feat(api): add statement_totals field to Statement/StatementsCreatedWebhookEvent
1 parent 65f1c4b commit 44d890e

7 files changed

Lines changed: 257 additions & 5 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 190
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-27d13d3d5226c710b07f9fc954fa53a8e6923e74d90d3f587d96399c1baf4de3.yml
3-
openapi_spec_hash: 99a60cbd91f32b25617a9536fadebf07
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-bf54d7063b11e1b1656e00d02438f34f87938a9fdbdd5b980fce3cfae3dabffa.yml
3+
openapi_spec_hash: c6efbc9d3105fa48f76ebb095b887e08
44
config_hash: edbdfefeb0d3d927c2f9fe3402793215

lithic-java-core/src/main/kotlin/com/lithic/api/models/Statement.kt

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ private constructor(
4545
private val nextPaymentDueDate: JsonField<LocalDate>,
4646
private val nextStatementEndDate: JsonField<LocalDate>,
4747
private val payoffDetails: JsonField<PayoffDetails>,
48+
private val statementTotals: JsonField<StatementTotals>,
4849
private val additionalProperties: MutableMap<String, JsonValue>,
4950
) {
5051

@@ -114,6 +115,9 @@ private constructor(
114115
@JsonProperty("payoff_details")
115116
@ExcludeMissing
116117
payoffDetails: JsonField<PayoffDetails> = JsonMissing.of(),
118+
@JsonProperty("statement_totals")
119+
@ExcludeMissing
120+
statementTotals: JsonField<StatementTotals> = JsonMissing.of(),
117121
) : this(
118122
token,
119123
accountStanding,
@@ -137,6 +141,7 @@ private constructor(
137141
nextPaymentDueDate,
138142
nextStatementEndDate,
139143
payoffDetails,
144+
statementTotals,
140145
mutableMapOf(),
141146
)
142147

@@ -309,6 +314,13 @@ private constructor(
309314
*/
310315
fun payoffDetails(): Optional<PayoffDetails> = payoffDetails.getOptional("payoff_details")
311316

317+
/**
318+
* @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
319+
* server responded with an unexpected value).
320+
*/
321+
fun statementTotals(): Optional<StatementTotals> =
322+
statementTotals.getOptional("statement_totals")
323+
312324
/**
313325
* Returns the raw JSON value of [token].
314326
*
@@ -504,6 +516,15 @@ private constructor(
504516
@ExcludeMissing
505517
fun _payoffDetails(): JsonField<PayoffDetails> = payoffDetails
506518

519+
/**
520+
* Returns the raw JSON value of [statementTotals].
521+
*
522+
* Unlike [statementTotals], this method doesn't throw if the JSON field has an unexpected type.
523+
*/
524+
@JsonProperty("statement_totals")
525+
@ExcludeMissing
526+
fun _statementTotals(): JsonField<StatementTotals> = statementTotals
527+
507528
@JsonAnySetter
508529
private fun putAdditionalProperty(key: String, value: JsonValue) {
509530
additionalProperties.put(key, value)
@@ -571,6 +592,7 @@ private constructor(
571592
private var nextPaymentDueDate: JsonField<LocalDate> = JsonMissing.of()
572593
private var nextStatementEndDate: JsonField<LocalDate> = JsonMissing.of()
573594
private var payoffDetails: JsonField<PayoffDetails> = JsonMissing.of()
595+
private var statementTotals: JsonField<StatementTotals> = JsonMissing.of()
574596
private var additionalProperties: MutableMap<String, JsonValue> = mutableMapOf()
575597

576598
@JvmSynthetic
@@ -597,6 +619,7 @@ private constructor(
597619
nextPaymentDueDate = statement.nextPaymentDueDate
598620
nextStatementEndDate = statement.nextStatementEndDate
599621
payoffDetails = statement.payoffDetails
622+
statementTotals = statement.statementTotals
600623
additionalProperties = statement.additionalProperties.toMutableMap()
601624
}
602625

@@ -915,6 +938,20 @@ private constructor(
915938
this.payoffDetails = payoffDetails
916939
}
917940

941+
fun statementTotals(statementTotals: StatementTotals) =
942+
statementTotals(JsonField.of(statementTotals))
943+
944+
/**
945+
* Sets [Builder.statementTotals] to an arbitrary JSON value.
946+
*
947+
* You should usually call [Builder.statementTotals] with a well-typed [StatementTotals]
948+
* value instead. This method is primarily for setting the field to an undocumented or not
949+
* yet supported value.
950+
*/
951+
fun statementTotals(statementTotals: JsonField<StatementTotals>) = apply {
952+
this.statementTotals = statementTotals
953+
}
954+
918955
fun additionalProperties(additionalProperties: Map<String, JsonValue>) = apply {
919956
this.additionalProperties.clear()
920957
putAllAdditionalProperties(additionalProperties)
@@ -987,6 +1024,7 @@ private constructor(
9871024
nextPaymentDueDate,
9881025
nextStatementEndDate,
9891026
payoffDetails,
1027+
statementTotals,
9901028
additionalProperties.toMutableMap(),
9911029
)
9921030
}
@@ -1020,6 +1058,7 @@ private constructor(
10201058
nextPaymentDueDate()
10211059
nextStatementEndDate()
10221060
payoffDetails().ifPresent { it.validate() }
1061+
statementTotals().ifPresent { it.validate() }
10231062
validated = true
10241063
}
10251064

@@ -1059,7 +1098,8 @@ private constructor(
10591098
(interestDetails.asKnown().getOrNull()?.validity() ?: 0) +
10601099
(if (nextPaymentDueDate.asKnown().isPresent) 1 else 0) +
10611100
(if (nextStatementEndDate.asKnown().isPresent) 1 else 0) +
1062-
(payoffDetails.asKnown().getOrNull()?.validity() ?: 0)
1101+
(payoffDetails.asKnown().getOrNull()?.validity() ?: 0) +
1102+
(statementTotals.asKnown().getOrNull()?.validity() ?: 0)
10631103

10641104
class AccountStanding
10651105
@JsonCreator(mode = JsonCreator.Mode.DISABLED)
@@ -3643,6 +3683,7 @@ private constructor(
36433683
nextPaymentDueDate == other.nextPaymentDueDate &&
36443684
nextStatementEndDate == other.nextStatementEndDate &&
36453685
payoffDetails == other.payoffDetails &&
3686+
statementTotals == other.statementTotals &&
36463687
additionalProperties == other.additionalProperties
36473688
}
36483689

@@ -3670,12 +3711,13 @@ private constructor(
36703711
nextPaymentDueDate,
36713712
nextStatementEndDate,
36723713
payoffDetails,
3714+
statementTotals,
36733715
additionalProperties,
36743716
)
36753717
}
36763718

36773719
override fun hashCode(): Int = hashCode
36783720

36793721
override fun toString() =
3680-
"Statement{token=$token, accountStanding=$accountStanding, amountDue=$amountDue, availableCredit=$availableCredit, created=$created, creditLimit=$creditLimit, creditProductToken=$creditProductToken, daysInBillingCycle=$daysInBillingCycle, endingBalance=$endingBalance, financialAccountToken=$financialAccountToken, paymentDueDate=$paymentDueDate, periodTotals=$periodTotals, startingBalance=$startingBalance, statementEndDate=$statementEndDate, statementStartDate=$statementStartDate, statementType=$statementType, updated=$updated, ytdTotals=$ytdTotals, interestDetails=$interestDetails, nextPaymentDueDate=$nextPaymentDueDate, nextStatementEndDate=$nextStatementEndDate, payoffDetails=$payoffDetails, additionalProperties=$additionalProperties}"
3722+
"Statement{token=$token, accountStanding=$accountStanding, amountDue=$amountDue, availableCredit=$availableCredit, created=$created, creditLimit=$creditLimit, creditProductToken=$creditProductToken, daysInBillingCycle=$daysInBillingCycle, endingBalance=$endingBalance, financialAccountToken=$financialAccountToken, paymentDueDate=$paymentDueDate, periodTotals=$periodTotals, startingBalance=$startingBalance, statementEndDate=$statementEndDate, statementStartDate=$statementStartDate, statementType=$statementType, updated=$updated, ytdTotals=$ytdTotals, interestDetails=$interestDetails, nextPaymentDueDate=$nextPaymentDueDate, nextStatementEndDate=$nextStatementEndDate, payoffDetails=$payoffDetails, statementTotals=$statementTotals, additionalProperties=$additionalProperties}"
36813723
}

lithic-java-core/src/main/kotlin/com/lithic/api/models/StatementsCreatedWebhookEvent.kt

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ private constructor(
4545
private val nextPaymentDueDate: JsonField<LocalDate>,
4646
private val nextStatementEndDate: JsonField<LocalDate>,
4747
private val payoffDetails: JsonField<Statement.PayoffDetails>,
48+
private val statementTotals: JsonField<StatementTotals>,
4849
private val eventType: JsonField<EventType>,
4950
private val additionalProperties: MutableMap<String, JsonValue>,
5051
) {
@@ -115,6 +116,9 @@ private constructor(
115116
@JsonProperty("payoff_details")
116117
@ExcludeMissing
117118
payoffDetails: JsonField<Statement.PayoffDetails> = JsonMissing.of(),
119+
@JsonProperty("statement_totals")
120+
@ExcludeMissing
121+
statementTotals: JsonField<StatementTotals> = JsonMissing.of(),
118122
@JsonProperty("event_type")
119123
@ExcludeMissing
120124
eventType: JsonField<EventType> = JsonMissing.of(),
@@ -141,6 +145,7 @@ private constructor(
141145
nextPaymentDueDate,
142146
nextStatementEndDate,
143147
payoffDetails,
148+
statementTotals,
144149
eventType,
145150
mutableMapOf(),
146151
)
@@ -169,6 +174,7 @@ private constructor(
169174
.nextPaymentDueDate(nextPaymentDueDate)
170175
.nextStatementEndDate(nextStatementEndDate)
171176
.payoffDetails(payoffDetails)
177+
.statementTotals(statementTotals)
172178
.build()
173179

174180
/**
@@ -342,6 +348,13 @@ private constructor(
342348
fun payoffDetails(): Optional<Statement.PayoffDetails> =
343349
payoffDetails.getOptional("payoff_details")
344350

351+
/**
352+
* @throws LithicInvalidDataException if the JSON field has an unexpected type (e.g. if the
353+
* server responded with an unexpected value).
354+
*/
355+
fun statementTotals(): Optional<StatementTotals> =
356+
statementTotals.getOptional("statement_totals")
357+
345358
/**
346359
* The type of event that occurred.
347360
*
@@ -547,6 +560,15 @@ private constructor(
547560
@ExcludeMissing
548561
fun _payoffDetails(): JsonField<Statement.PayoffDetails> = payoffDetails
549562

563+
/**
564+
* Returns the raw JSON value of [statementTotals].
565+
*
566+
* Unlike [statementTotals], this method doesn't throw if the JSON field has an unexpected type.
567+
*/
568+
@JsonProperty("statement_totals")
569+
@ExcludeMissing
570+
fun _statementTotals(): JsonField<StatementTotals> = statementTotals
571+
550572
/**
551573
* Returns the raw JSON value of [eventType].
552574
*
@@ -623,6 +645,7 @@ private constructor(
623645
private var nextPaymentDueDate: JsonField<LocalDate> = JsonMissing.of()
624646
private var nextStatementEndDate: JsonField<LocalDate> = JsonMissing.of()
625647
private var payoffDetails: JsonField<Statement.PayoffDetails> = JsonMissing.of()
648+
private var statementTotals: JsonField<StatementTotals> = JsonMissing.of()
626649
private var eventType: JsonField<EventType>? = null
627650
private var additionalProperties: MutableMap<String, JsonValue> = mutableMapOf()
628651

@@ -650,6 +673,7 @@ private constructor(
650673
nextPaymentDueDate = statementsCreatedWebhookEvent.nextPaymentDueDate
651674
nextStatementEndDate = statementsCreatedWebhookEvent.nextStatementEndDate
652675
payoffDetails = statementsCreatedWebhookEvent.payoffDetails
676+
statementTotals = statementsCreatedWebhookEvent.statementTotals
653677
eventType = statementsCreatedWebhookEvent.eventType
654678
additionalProperties = statementsCreatedWebhookEvent.additionalProperties.toMutableMap()
655679
}
@@ -972,6 +996,20 @@ private constructor(
972996
this.payoffDetails = payoffDetails
973997
}
974998

999+
fun statementTotals(statementTotals: StatementTotals) =
1000+
statementTotals(JsonField.of(statementTotals))
1001+
1002+
/**
1003+
* Sets [Builder.statementTotals] to an arbitrary JSON value.
1004+
*
1005+
* You should usually call [Builder.statementTotals] with a well-typed [StatementTotals]
1006+
* value instead. This method is primarily for setting the field to an undocumented or not
1007+
* yet supported value.
1008+
*/
1009+
fun statementTotals(statementTotals: JsonField<StatementTotals>) = apply {
1010+
this.statementTotals = statementTotals
1011+
}
1012+
9751013
/** The type of event that occurred. */
9761014
fun eventType(eventType: EventType) = eventType(JsonField.of(eventType))
9771015

@@ -1057,6 +1095,7 @@ private constructor(
10571095
nextPaymentDueDate,
10581096
nextStatementEndDate,
10591097
payoffDetails,
1098+
statementTotals,
10601099
checkRequired("eventType", eventType),
10611100
additionalProperties.toMutableMap(),
10621101
)
@@ -1091,6 +1130,7 @@ private constructor(
10911130
nextPaymentDueDate()
10921131
nextStatementEndDate()
10931132
payoffDetails().ifPresent { it.validate() }
1133+
statementTotals().ifPresent { it.validate() }
10941134
eventType().validate()
10951135
validated = true
10961136
}
@@ -1132,6 +1172,7 @@ private constructor(
11321172
(if (nextPaymentDueDate.asKnown().isPresent) 1 else 0) +
11331173
(if (nextStatementEndDate.asKnown().isPresent) 1 else 0) +
11341174
(payoffDetails.asKnown().getOrNull()?.validity() ?: 0) +
1175+
(statementTotals.asKnown().getOrNull()?.validity() ?: 0) +
11351176
(eventType.asKnown().getOrNull()?.validity() ?: 0)
11361177

11371178
/** The type of event that occurred. */
@@ -1284,6 +1325,7 @@ private constructor(
12841325
nextPaymentDueDate == other.nextPaymentDueDate &&
12851326
nextStatementEndDate == other.nextStatementEndDate &&
12861327
payoffDetails == other.payoffDetails &&
1328+
statementTotals == other.statementTotals &&
12871329
eventType == other.eventType &&
12881330
additionalProperties == other.additionalProperties
12891331
}
@@ -1312,6 +1354,7 @@ private constructor(
13121354
nextPaymentDueDate,
13131355
nextStatementEndDate,
13141356
payoffDetails,
1357+
statementTotals,
13151358
eventType,
13161359
additionalProperties,
13171360
)
@@ -1320,5 +1363,5 @@ private constructor(
13201363
override fun hashCode(): Int = hashCode
13211364

13221365
override fun toString() =
1323-
"StatementsCreatedWebhookEvent{token=$token, accountStanding=$accountStanding, amountDue=$amountDue, availableCredit=$availableCredit, created=$created, creditLimit=$creditLimit, creditProductToken=$creditProductToken, daysInBillingCycle=$daysInBillingCycle, endingBalance=$endingBalance, financialAccountToken=$financialAccountToken, paymentDueDate=$paymentDueDate, periodTotals=$periodTotals, startingBalance=$startingBalance, statementEndDate=$statementEndDate, statementStartDate=$statementStartDate, statementType=$statementType, updated=$updated, ytdTotals=$ytdTotals, interestDetails=$interestDetails, nextPaymentDueDate=$nextPaymentDueDate, nextStatementEndDate=$nextStatementEndDate, payoffDetails=$payoffDetails, eventType=$eventType, additionalProperties=$additionalProperties}"
1366+
"StatementsCreatedWebhookEvent{token=$token, accountStanding=$accountStanding, amountDue=$amountDue, availableCredit=$availableCredit, created=$created, creditLimit=$creditLimit, creditProductToken=$creditProductToken, daysInBillingCycle=$daysInBillingCycle, endingBalance=$endingBalance, financialAccountToken=$financialAccountToken, paymentDueDate=$paymentDueDate, periodTotals=$periodTotals, startingBalance=$startingBalance, statementEndDate=$statementEndDate, statementStartDate=$statementStartDate, statementType=$statementType, updated=$updated, ytdTotals=$ytdTotals, interestDetails=$interestDetails, nextPaymentDueDate=$nextPaymentDueDate, nextStatementEndDate=$nextStatementEndDate, payoffDetails=$payoffDetails, statementTotals=$statementTotals, eventType=$eventType, additionalProperties=$additionalProperties}"
13241367
}

lithic-java-core/src/test/kotlin/com/lithic/api/models/ParsedWebhookEventTest.kt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8255,6 +8255,21 @@ internal class ParsedWebhookEventTest {
82558255
.payoffPeriodPaymentTotal(0L)
82568256
.build()
82578257
)
8258+
.statementTotals(
8259+
StatementTotals.builder()
8260+
.balanceTransfers(0L)
8261+
.cashAdvances(0L)
8262+
.credits(0L)
8263+
.debits(0L)
8264+
.fees(0L)
8265+
.interest(0L)
8266+
.payments(0L)
8267+
.purchases(0L)
8268+
.creditDetails(JsonValue.from(mapOf<String, Any>()))
8269+
.debitDetails(JsonValue.from(mapOf<String, Any>()))
8270+
.paymentDetails(JsonValue.from(mapOf<String, Any>()))
8271+
.build()
8272+
)
82588273
.eventType(StatementsCreatedWebhookEvent.EventType.STATEMENTS_CREATED)
82598274
.build()
82608275

@@ -8439,6 +8454,21 @@ internal class ParsedWebhookEventTest {
84398454
.payoffPeriodPaymentTotal(0L)
84408455
.build()
84418456
)
8457+
.statementTotals(
8458+
StatementTotals.builder()
8459+
.balanceTransfers(0L)
8460+
.cashAdvances(0L)
8461+
.credits(0L)
8462+
.debits(0L)
8463+
.fees(0L)
8464+
.interest(0L)
8465+
.payments(0L)
8466+
.purchases(0L)
8467+
.creditDetails(JsonValue.from(mapOf<String, Any>()))
8468+
.debitDetails(JsonValue.from(mapOf<String, Any>()))
8469+
.paymentDetails(JsonValue.from(mapOf<String, Any>()))
8470+
.build()
8471+
)
84428472
.eventType(StatementsCreatedWebhookEvent.EventType.STATEMENTS_CREATED)
84438473
.build()
84448474
)

0 commit comments

Comments
 (0)