Skip to content

Commit 448e90a

Browse files
release: 1.5.0 (#18)
Automated Release PR --- ## 1.5.0 (2026-04-10) Full Changelog: [v1.4.0...v1.5.0](v1.4.0...v1.5.0) ### Features * **api:** add currencies/region fields to customers, filters to list ([87d9221](87d9221)) * **api:** remove list method from quotes ([ae6b4e8](ae6b4e8)) ### Bug Fixes * **api:** make customerId required, remove role filter in beneficial owners list ([ffa8a25](ffa8a25)) ### Documentation * **api:** update crypto_network examples in crypto/external accounts/quotes ([149bfc9](149bfc9)) --- This pull request is managed by Stainless's [GitHub App](https://github.com/apps/stainless-app). The [semver version number](https://semver.org/#semantic-versioning-specification-semver) is based on included [commit messages](https://www.conventionalcommits.org/en/v1.0.0/). Alternatively, you can manually set the version number in the title of this pull request. For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request. 🔗 Stainless [website](https://www.stainlessapi.com) 📚 Read the [docs](https://app.stainlessapi.com/docs) 🙋 [Reach out](mailto:support@stainlessapi.com) for help or questions --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent 5cfa539 commit 448e90a

46 files changed

Lines changed: 1100 additions & 1928 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "1.4.0"
2+
".": "1.5.0"
33
}

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 56
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lightspark%2Fgrid-28cd7f09a1be0028041885e5055718c3aa0ecb738526689a2f064cfac8c177f8.yml
3-
openapi_spec_hash: c40a82e4c571cd9786f66eebad7aef09
1+
configured_endpoints: 55
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lightspark%2Fgrid-5f12cb865215bc90309a8fbfc2f86d6cd25f57de9b14e9d95952d4325608e890.yml
3+
openapi_spec_hash: d6fcf6f0cd3661f395658643848012ea
44
config_hash: 46d2b1a1cc0e1e24f91c90fe729be40c

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
11
# Changelog
22

3+
## 1.5.0 (2026-04-10)
4+
5+
Full Changelog: [v1.4.0...v1.5.0](https://github.com/lightsparkdev/grid-kotlin-sdk/compare/v1.4.0...v1.5.0)
6+
7+
### Features
8+
9+
* **api:** add currencies/region fields to customers, filters to list ([87d9221](https://github.com/lightsparkdev/grid-kotlin-sdk/commit/87d922160615f1ad5f59083ceb4a2bcb0259d1bd))
10+
* **api:** remove list method from quotes ([ae6b4e8](https://github.com/lightsparkdev/grid-kotlin-sdk/commit/ae6b4e838f052ee945ddfdb2f31b4b7a7113a36b))
11+
12+
13+
### Bug Fixes
14+
15+
* **api:** make customerId required, remove role filter in beneficial owners list ([ffa8a25](https://github.com/lightsparkdev/grid-kotlin-sdk/commit/ffa8a255d98c3baff944a23b615a51a1d5335749))
16+
17+
18+
### Documentation
19+
20+
* **api:** update crypto_network examples in crypto/external accounts/quotes ([149bfc9](https://github.com/lightsparkdev/grid-kotlin-sdk/commit/149bfc98f9014beb590f47c75983c4b6b9250514))
21+
322
## 1.4.0 (2026-04-01)
423

524
Full Changelog: [v1.3.0...v1.4.0](https://github.com/lightsparkdev/grid-kotlin-sdk/compare/v1.3.0...v1.4.0)

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
<!-- x-release-please-start-version -->
44

5-
[![Maven Central](https://img.shields.io/maven-central/v/com.lightspark.grid/lightspark-grid-kotlin)](https://central.sonatype.com/artifact/com.lightspark.grid/lightspark-grid-kotlin/1.4.0)
6-
[![javadoc](https://javadoc.io/badge2/com.lightspark.grid/lightspark-grid-kotlin/1.4.0/javadoc.svg)](https://javadoc.io/doc/com.lightspark.grid/lightspark-grid-kotlin/1.4.0)
5+
[![Maven Central](https://img.shields.io/maven-central/v/com.lightspark.grid/lightspark-grid-kotlin)](https://central.sonatype.com/artifact/com.lightspark.grid/lightspark-grid-kotlin/1.5.0)
6+
[![javadoc](https://javadoc.io/badge2/com.lightspark.grid/lightspark-grid-kotlin/1.5.0/javadoc.svg)](https://javadoc.io/doc/com.lightspark.grid/lightspark-grid-kotlin/1.5.0)
77

88
<!-- x-release-please-end -->
99

@@ -22,7 +22,7 @@ Use the Lightspark Grid MCP Server to enable AI assistants to interact with this
2222
2323
<!-- x-release-please-start-version -->
2424

25-
KDocs are available on [javadoc.io](https://javadoc.io/doc/com.lightspark.grid/lightspark-grid-kotlin/1.4.0).
25+
KDocs are available on [javadoc.io](https://javadoc.io/doc/com.lightspark.grid/lightspark-grid-kotlin/1.5.0).
2626

2727
<!-- x-release-please-end -->
2828

@@ -33,7 +33,7 @@ KDocs are available on [javadoc.io](https://javadoc.io/doc/com.lightspark.grid/l
3333
### Gradle
3434

3535
```kotlin
36-
implementation("com.lightspark.grid:lightspark-grid-kotlin:1.4.0")
36+
implementation("com.lightspark.grid:lightspark-grid-kotlin:1.5.0")
3737
```
3838

3939
### Maven
@@ -42,7 +42,7 @@ implementation("com.lightspark.grid:lightspark-grid-kotlin:1.4.0")
4242
<dependency>
4343
<groupId>com.lightspark.grid</groupId>
4444
<artifactId>lightspark-grid-kotlin</artifactId>
45-
<version>1.4.0</version>
45+
<version>1.5.0</version>
4646
</dependency>
4747
```
4848

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ repositories {
88

99
allprojects {
1010
group = "com.lightspark.grid"
11-
version = "1.4.0" // x-release-please-version
11+
version = "1.5.0" // x-release-please-version
1212
}
1313

1414
subprojects {

lightspark-grid-kotlin-core/src/main/kotlin/com/lightspark/grid/models/beneficialowners/BeneficialOwnerListParams.kt

Lines changed: 28 additions & 183 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,31 @@
22

33
package com.lightspark.grid.models.beneficialowners
44

5-
import com.fasterxml.jackson.annotation.JsonCreator
6-
import com.lightspark.grid.core.Enum
7-
import com.lightspark.grid.core.JsonField
85
import com.lightspark.grid.core.Params
6+
import com.lightspark.grid.core.checkRequired
97
import com.lightspark.grid.core.http.Headers
108
import com.lightspark.grid.core.http.QueryParams
11-
import com.lightspark.grid.errors.LightsparkGridInvalidDataException
129
import java.util.Objects
1310

14-
/** Retrieve a list of beneficial owners with optional filtering by customer ID and role. */
11+
/** Retrieve a list of beneficial owners for a business customer. */
1512
class BeneficialOwnerListParams
1613
private constructor(
14+
private val customerId: String,
1715
private val cursor: String?,
18-
private val customerId: String?,
1916
private val limit: Long?,
20-
private val role: Role?,
2117
private val additionalHeaders: Headers,
2218
private val additionalQueryParams: QueryParams,
2319
) : Params {
2420

21+
/** The business customer ID */
22+
fun customerId(): String = customerId
23+
2524
/** Cursor for pagination (returned from previous request) */
2625
fun cursor(): String? = cursor
2726

28-
/** Filter by business customer ID */
29-
fun customerId(): String? = customerId
30-
3127
/** Maximum number of results to return (default 20, max 100) */
3228
fun limit(): Long? = limit
3329

34-
/** Filter by role */
35-
fun role(): Role? = role
36-
3730
/** Additional headers to send with the request. */
3831
fun _additionalHeaders(): Headers = additionalHeaders
3932

@@ -44,39 +37,40 @@ private constructor(
4437

4538
companion object {
4639

47-
fun none(): BeneficialOwnerListParams = builder().build()
48-
4940
/**
5041
* Returns a mutable builder for constructing an instance of [BeneficialOwnerListParams].
42+
*
43+
* The following fields are required:
44+
* ```kotlin
45+
* .customerId()
46+
* ```
5147
*/
5248
fun builder() = Builder()
5349
}
5450

5551
/** A builder for [BeneficialOwnerListParams]. */
5652
class Builder internal constructor() {
5753

58-
private var cursor: String? = null
5954
private var customerId: String? = null
55+
private var cursor: String? = null
6056
private var limit: Long? = null
61-
private var role: Role? = null
6257
private var additionalHeaders: Headers.Builder = Headers.builder()
6358
private var additionalQueryParams: QueryParams.Builder = QueryParams.builder()
6459

6560
internal fun from(beneficialOwnerListParams: BeneficialOwnerListParams) = apply {
66-
cursor = beneficialOwnerListParams.cursor
6761
customerId = beneficialOwnerListParams.customerId
62+
cursor = beneficialOwnerListParams.cursor
6863
limit = beneficialOwnerListParams.limit
69-
role = beneficialOwnerListParams.role
7064
additionalHeaders = beneficialOwnerListParams.additionalHeaders.toBuilder()
7165
additionalQueryParams = beneficialOwnerListParams.additionalQueryParams.toBuilder()
7266
}
7367

68+
/** The business customer ID */
69+
fun customerId(customerId: String) = apply { this.customerId = customerId }
70+
7471
/** Cursor for pagination (returned from previous request) */
7572
fun cursor(cursor: String?) = apply { this.cursor = cursor }
7673

77-
/** Filter by business customer ID */
78-
fun customerId(customerId: String?) = apply { this.customerId = customerId }
79-
8074
/** Maximum number of results to return (default 20, max 100) */
8175
fun limit(limit: Long?) = apply { this.limit = limit }
8276

@@ -87,9 +81,6 @@ private constructor(
8781
*/
8882
fun limit(limit: Long) = limit(limit as Long?)
8983

90-
/** Filter by role */
91-
fun role(role: Role?) = apply { this.role = role }
92-
9384
fun additionalHeaders(additionalHeaders: Headers) = apply {
9485
this.additionalHeaders.clear()
9586
putAllAdditionalHeaders(additionalHeaders)
@@ -192,13 +183,19 @@ private constructor(
192183
* Returns an immutable instance of [BeneficialOwnerListParams].
193184
*
194185
* Further updates to this [Builder] will not mutate the returned instance.
186+
*
187+
* The following fields are required:
188+
* ```kotlin
189+
* .customerId()
190+
* ```
191+
*
192+
* @throws IllegalStateException if any required field is unset.
195193
*/
196194
fun build(): BeneficialOwnerListParams =
197195
BeneficialOwnerListParams(
196+
checkRequired("customerId", customerId),
198197
cursor,
199-
customerId,
200198
limit,
201-
role,
202199
additionalHeaders.build(),
203200
additionalQueryParams.build(),
204201
)
@@ -209,181 +206,29 @@ private constructor(
209206
override fun _queryParams(): QueryParams =
210207
QueryParams.builder()
211208
.apply {
209+
put("customerId", customerId)
212210
cursor?.let { put("cursor", it) }
213-
customerId?.let { put("customerId", it) }
214211
limit?.let { put("limit", it.toString()) }
215-
role?.let { put("role", it.toString()) }
216212
putAll(additionalQueryParams)
217213
}
218214
.build()
219215

220-
/** Filter by role */
221-
class Role @JsonCreator private constructor(private val value: JsonField<String>) : Enum {
222-
223-
/**
224-
* Returns this class instance's raw value.
225-
*
226-
* This is usually only useful if this instance was deserialized from data that doesn't
227-
* match any known member, and you want to know that value. For example, if the SDK is on an
228-
* older version than the API, then the API may respond with new members that the SDK is
229-
* unaware of.
230-
*/
231-
@com.fasterxml.jackson.annotation.JsonValue fun _value(): JsonField<String> = value
232-
233-
companion object {
234-
235-
val UBO = of("UBO")
236-
237-
val DIRECTOR = of("DIRECTOR")
238-
239-
val COMPANY_OFFICER = of("COMPANY_OFFICER")
240-
241-
val CONTROL_PERSON = of("CONTROL_PERSON")
242-
243-
val TRUSTEE = of("TRUSTEE")
244-
245-
val GENERAL_PARTNER = of("GENERAL_PARTNER")
246-
247-
fun of(value: String) = Role(JsonField.of(value))
248-
}
249-
250-
/** An enum containing [Role]'s known values. */
251-
enum class Known {
252-
UBO,
253-
DIRECTOR,
254-
COMPANY_OFFICER,
255-
CONTROL_PERSON,
256-
TRUSTEE,
257-
GENERAL_PARTNER,
258-
}
259-
260-
/**
261-
* An enum containing [Role]'s known values, as well as an [_UNKNOWN] member.
262-
*
263-
* An instance of [Role] can contain an unknown value in a couple of cases:
264-
* - It was deserialized from data that doesn't match any known member. For example, if the
265-
* SDK is on an older version than the API, then the API may respond with new members that
266-
* the SDK is unaware of.
267-
* - It was constructed with an arbitrary value using the [of] method.
268-
*/
269-
enum class Value {
270-
UBO,
271-
DIRECTOR,
272-
COMPANY_OFFICER,
273-
CONTROL_PERSON,
274-
TRUSTEE,
275-
GENERAL_PARTNER,
276-
/** An enum member indicating that [Role] was instantiated with an unknown value. */
277-
_UNKNOWN,
278-
}
279-
280-
/**
281-
* Returns an enum member corresponding to this class instance's value, or [Value._UNKNOWN]
282-
* if the class was instantiated with an unknown value.
283-
*
284-
* Use the [known] method instead if you're certain the value is always known or if you want
285-
* to throw for the unknown case.
286-
*/
287-
fun value(): Value =
288-
when (this) {
289-
UBO -> Value.UBO
290-
DIRECTOR -> Value.DIRECTOR
291-
COMPANY_OFFICER -> Value.COMPANY_OFFICER
292-
CONTROL_PERSON -> Value.CONTROL_PERSON
293-
TRUSTEE -> Value.TRUSTEE
294-
GENERAL_PARTNER -> Value.GENERAL_PARTNER
295-
else -> Value._UNKNOWN
296-
}
297-
298-
/**
299-
* Returns an enum member corresponding to this class instance's value.
300-
*
301-
* Use the [value] method instead if you're uncertain the value is always known and don't
302-
* want to throw for the unknown case.
303-
*
304-
* @throws LightsparkGridInvalidDataException if this class instance's value is a not a
305-
* known member.
306-
*/
307-
fun known(): Known =
308-
when (this) {
309-
UBO -> Known.UBO
310-
DIRECTOR -> Known.DIRECTOR
311-
COMPANY_OFFICER -> Known.COMPANY_OFFICER
312-
CONTROL_PERSON -> Known.CONTROL_PERSON
313-
TRUSTEE -> Known.TRUSTEE
314-
GENERAL_PARTNER -> Known.GENERAL_PARTNER
315-
else -> throw LightsparkGridInvalidDataException("Unknown Role: $value")
316-
}
317-
318-
/**
319-
* Returns this class instance's primitive wire representation.
320-
*
321-
* This differs from the [toString] method because that method is primarily for debugging
322-
* and generally doesn't throw.
323-
*
324-
* @throws LightsparkGridInvalidDataException if this class instance's value does not have
325-
* the expected primitive type.
326-
*/
327-
fun asString(): String =
328-
_value().asString() ?: throw LightsparkGridInvalidDataException("Value is not a String")
329-
330-
private var validated: Boolean = false
331-
332-
fun validate(): Role = apply {
333-
if (validated) {
334-
return@apply
335-
}
336-
337-
known()
338-
validated = true
339-
}
340-
341-
fun isValid(): Boolean =
342-
try {
343-
validate()
344-
true
345-
} catch (e: LightsparkGridInvalidDataException) {
346-
false
347-
}
348-
349-
/**
350-
* Returns a score indicating how many valid values are contained in this object
351-
* recursively.
352-
*
353-
* Used for best match union deserialization.
354-
*/
355-
internal fun validity(): Int = if (value() == Value._UNKNOWN) 0 else 1
356-
357-
override fun equals(other: Any?): Boolean {
358-
if (this === other) {
359-
return true
360-
}
361-
362-
return other is Role && value == other.value
363-
}
364-
365-
override fun hashCode() = value.hashCode()
366-
367-
override fun toString() = value.toString()
368-
}
369-
370216
override fun equals(other: Any?): Boolean {
371217
if (this === other) {
372218
return true
373219
}
374220

375221
return other is BeneficialOwnerListParams &&
376-
cursor == other.cursor &&
377222
customerId == other.customerId &&
223+
cursor == other.cursor &&
378224
limit == other.limit &&
379-
role == other.role &&
380225
additionalHeaders == other.additionalHeaders &&
381226
additionalQueryParams == other.additionalQueryParams
382227
}
383228

384229
override fun hashCode(): Int =
385-
Objects.hash(cursor, customerId, limit, role, additionalHeaders, additionalQueryParams)
230+
Objects.hash(customerId, cursor, limit, additionalHeaders, additionalQueryParams)
386231

387232
override fun toString() =
388-
"BeneficialOwnerListParams{cursor=$cursor, customerId=$customerId, limit=$limit, role=$role, additionalHeaders=$additionalHeaders, additionalQueryParams=$additionalQueryParams}"
233+
"BeneficialOwnerListParams{customerId=$customerId, cursor=$cursor, limit=$limit, additionalHeaders=$additionalHeaders, additionalQueryParams=$additionalQueryParams}"
389234
}

0 commit comments

Comments
 (0)