Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
429 commits
Select commit Hold shift + click to select a range
6b27cbf
codegen metadata
stainless-app[bot] Feb 27, 2026
f40424d
codegen metadata
stainless-app[bot] Feb 27, 2026
454045d
codegen metadata
stainless-app[bot] Feb 27, 2026
1c327f8
codegen metadata
stainless-app[bot] Feb 27, 2026
8fe4531
codegen metadata
stainless-app[bot] Feb 27, 2026
93b191c
codegen metadata
stainless-app[bot] Feb 27, 2026
22c212b
codegen metadata
stainless-app[bot] Feb 27, 2026
e05145f
codegen metadata
stainless-app[bot] Feb 27, 2026
20a07f5
codegen metadata
stainless-app[bot] Feb 27, 2026
058ccf4
codegen metadata
stainless-app[bot] Feb 27, 2026
57d580c
codegen metadata
stainless-app[bot] Feb 27, 2026
ba399e1
codegen metadata
stainless-app[bot] Feb 27, 2026
fae7a24
codegen metadata
stainless-app[bot] Feb 28, 2026
3607f78
codegen metadata
stainless-app[bot] Feb 28, 2026
2dfb2a4
codegen metadata
stainless-app[bot] Feb 28, 2026
ae7489b
codegen metadata
stainless-app[bot] Feb 28, 2026
f4c95cc
codegen metadata
stainless-app[bot] Feb 28, 2026
6b27f40
codegen metadata
stainless-app[bot] Feb 28, 2026
1bccda1
codegen metadata
stainless-app[bot] Feb 28, 2026
ffbea59
codegen metadata
stainless-app[bot] Feb 28, 2026
bcaa389
codegen metadata
stainless-app[bot] Feb 28, 2026
5acc1a9
codegen metadata
stainless-app[bot] Feb 28, 2026
d5d7b9d
codegen metadata
stainless-app[bot] Feb 28, 2026
45eba09
codegen metadata
stainless-app[bot] Feb 28, 2026
5454dbd
codegen metadata
stainless-app[bot] Feb 28, 2026
57ae936
codegen metadata
stainless-app[bot] Feb 28, 2026
3bf2b9e
codegen metadata
stainless-app[bot] Feb 28, 2026
7d4ac99
codegen metadata
stainless-app[bot] Feb 28, 2026
bfbd471
codegen metadata
stainless-app[bot] Feb 28, 2026
b7805ff
codegen metadata
stainless-app[bot] Feb 28, 2026
d2770fd
codegen metadata
stainless-app[bot] Feb 28, 2026
28c183d
codegen metadata
stainless-app[bot] Feb 28, 2026
e0cd480
codegen metadata
stainless-app[bot] Feb 28, 2026
1f9606e
codegen metadata
stainless-app[bot] Feb 28, 2026
add4cd1
codegen metadata
stainless-app[bot] Mar 1, 2026
e6da03a
codegen metadata
stainless-app[bot] Mar 1, 2026
a1cb058
codegen metadata
stainless-app[bot] Mar 1, 2026
4d1fcc5
codegen metadata
stainless-app[bot] Mar 1, 2026
5e0d8f3
codegen metadata
stainless-app[bot] Mar 1, 2026
8212c3d
codegen metadata
stainless-app[bot] Mar 1, 2026
b75f831
codegen metadata
stainless-app[bot] Mar 1, 2026
5dabc0d
codegen metadata
stainless-app[bot] Mar 1, 2026
29585dc
codegen metadata
stainless-app[bot] Mar 1, 2026
5514993
codegen metadata
stainless-app[bot] Mar 1, 2026
f4f3dfb
codegen metadata
stainless-app[bot] Mar 1, 2026
1306cd0
codegen metadata
stainless-app[bot] Mar 1, 2026
e8771c7
codegen metadata
stainless-app[bot] Mar 1, 2026
abb2265
codegen metadata
stainless-app[bot] Mar 1, 2026
a699da5
codegen metadata
stainless-app[bot] Mar 1, 2026
059a776
codegen metadata
stainless-app[bot] Mar 1, 2026
f32a159
codegen metadata
stainless-app[bot] Mar 1, 2026
1aa16e3
codegen metadata
stainless-app[bot] Mar 1, 2026
e4716c7
codegen metadata
stainless-app[bot] Mar 1, 2026
50a89fa
codegen metadata
stainless-app[bot] Mar 1, 2026
e2a1288
codegen metadata
stainless-app[bot] Mar 1, 2026
56a6ccd
codegen metadata
stainless-app[bot] Mar 1, 2026
7759dfd
codegen metadata
stainless-app[bot] Mar 2, 2026
e4693d1
codegen metadata
stainless-app[bot] Mar 2, 2026
070c409
codegen metadata
stainless-app[bot] Mar 2, 2026
481d690
codegen metadata
stainless-app[bot] Mar 2, 2026
2a4dce7
codegen metadata
stainless-app[bot] Mar 2, 2026
de5fed4
codegen metadata
stainless-app[bot] Mar 2, 2026
21d4b6e
codegen metadata
stainless-app[bot] Mar 2, 2026
5bc5766
codegen metadata
stainless-app[bot] Mar 2, 2026
c23b6f4
codegen metadata
stainless-app[bot] Mar 2, 2026
c65ca33
codegen metadata
stainless-app[bot] Mar 2, 2026
cbf3a85
codegen metadata
stainless-app[bot] Mar 2, 2026
33d9e46
codegen metadata
stainless-app[bot] Mar 2, 2026
1760b82
codegen metadata
stainless-app[bot] Mar 2, 2026
505c6f8
codegen metadata
stainless-app[bot] Mar 2, 2026
22d1dfa
codegen metadata
stainless-app[bot] Mar 2, 2026
3061d92
codegen metadata
stainless-app[bot] Mar 2, 2026
0bab5c6
codegen metadata
stainless-app[bot] Mar 2, 2026
a4dd973
codegen metadata
stainless-app[bot] Mar 2, 2026
ce1841d
codegen metadata
stainless-app[bot] Mar 2, 2026
3da015d
codegen metadata
stainless-app[bot] Mar 2, 2026
4d2a1d9
codegen metadata
stainless-app[bot] Mar 2, 2026
c6075fd
codegen metadata
stainless-app[bot] Mar 2, 2026
495ccf0
codegen metadata
stainless-app[bot] Mar 3, 2026
6f6ebe3
codegen metadata
stainless-app[bot] Mar 3, 2026
69bd0ca
codegen metadata
stainless-app[bot] Mar 3, 2026
ae06c3c
codegen metadata
stainless-app[bot] Mar 3, 2026
31404f4
codegen metadata
stainless-app[bot] Mar 3, 2026
d085aae
codegen metadata
stainless-app[bot] Mar 3, 2026
61ce5bf
codegen metadata
stainless-app[bot] Mar 3, 2026
8085061
codegen metadata
stainless-app[bot] Mar 3, 2026
7657d97
codegen metadata
stainless-app[bot] Mar 3, 2026
5b5b9b6
codegen metadata
stainless-app[bot] Mar 3, 2026
c25044d
codegen metadata
stainless-app[bot] Mar 3, 2026
e1406e9
codegen metadata
stainless-app[bot] Mar 3, 2026
e9ac703
codegen metadata
stainless-app[bot] Mar 3, 2026
64aacc1
codegen metadata
stainless-app[bot] Mar 3, 2026
6634ee9
codegen metadata
stainless-app[bot] Mar 3, 2026
2af42da
codegen metadata
stainless-app[bot] Mar 3, 2026
4e8a800
codegen metadata
stainless-app[bot] Mar 3, 2026
9193704
codegen metadata
stainless-app[bot] Mar 3, 2026
359a510
codegen metadata
stainless-app[bot] Mar 3, 2026
4f32d78
codegen metadata
stainless-app[bot] Mar 3, 2026
82941ec
codegen metadata
stainless-app[bot] Mar 3, 2026
a2fbcad
codegen metadata
stainless-app[bot] Mar 3, 2026
327a2bc
codegen metadata
stainless-app[bot] Mar 4, 2026
32bf7cd
codegen metadata
stainless-app[bot] Mar 4, 2026
e1c2442
codegen metadata
stainless-app[bot] Mar 4, 2026
45c1b50
codegen metadata
stainless-app[bot] Mar 4, 2026
472fdd8
codegen metadata
stainless-app[bot] Mar 4, 2026
4b414d8
codegen metadata
stainless-app[bot] Mar 4, 2026
827344f
codegen metadata
stainless-app[bot] Mar 4, 2026
3a09c77
chore(internal): codegen related update
stainless-app[bot] Mar 4, 2026
c47c522
codegen metadata
stainless-app[bot] Mar 4, 2026
85d1a1b
codegen metadata
stainless-app[bot] Mar 4, 2026
c39c64b
codegen metadata
stainless-app[bot] Mar 4, 2026
0663169
codegen metadata
stainless-app[bot] Mar 4, 2026
c85470e
codegen metadata
stainless-app[bot] Mar 4, 2026
e0d2f34
codegen metadata
stainless-app[bot] Mar 4, 2026
6db0bae
codegen metadata
stainless-app[bot] Mar 4, 2026
a7ddd8a
codegen metadata
stainless-app[bot] Mar 5, 2026
e723c3e
codegen metadata
stainless-app[bot] Mar 5, 2026
a13ef6d
codegen metadata
stainless-app[bot] Mar 5, 2026
ade2491
codegen metadata
stainless-app[bot] Mar 5, 2026
6cd9caf
codegen metadata
stainless-app[bot] Mar 5, 2026
3ba69e3
codegen metadata
stainless-app[bot] Mar 5, 2026
e4872e3
codegen metadata
stainless-app[bot] Mar 5, 2026
c2d4ccf
codegen metadata
stainless-app[bot] Mar 5, 2026
48ebfd7
codegen metadata
stainless-app[bot] Mar 5, 2026
f35e579
codegen metadata
stainless-app[bot] Mar 5, 2026
299f5e9
codegen metadata
stainless-app[bot] Mar 5, 2026
c6b598b
codegen metadata
stainless-app[bot] Mar 5, 2026
5f5e6a8
codegen metadata
stainless-app[bot] Mar 5, 2026
dd62622
codegen metadata
stainless-app[bot] Mar 5, 2026
9092880
codegen metadata
stainless-app[bot] Mar 5, 2026
d5e0c04
codegen metadata
stainless-app[bot] Mar 5, 2026
0066f4b
codegen metadata
stainless-app[bot] Mar 5, 2026
e3578d8
codegen metadata
stainless-app[bot] Mar 6, 2026
24fc7bf
codegen metadata
stainless-app[bot] Mar 6, 2026
4f69d05
codegen metadata
stainless-app[bot] Mar 6, 2026
e1fad28
codegen metadata
stainless-app[bot] Mar 6, 2026
1b5a85e
codegen metadata
stainless-app[bot] Mar 6, 2026
424a0fc
codegen metadata
stainless-app[bot] Mar 6, 2026
b826b30
codegen metadata
stainless-app[bot] Mar 6, 2026
d8ec994
codegen metadata
stainless-app[bot] Mar 6, 2026
ac8a585
codegen metadata
stainless-app[bot] Mar 6, 2026
ec9db85
codegen metadata
stainless-app[bot] Mar 6, 2026
0b8152a
codegen metadata
stainless-app[bot] Mar 6, 2026
2ed4c1c
codegen metadata
stainless-app[bot] Mar 6, 2026
ba1c81c
codegen metadata
stainless-app[bot] Mar 6, 2026
7307d4f
codegen metadata
stainless-app[bot] Mar 6, 2026
1d51386
codegen metadata
stainless-app[bot] Mar 6, 2026
e78a560
codegen metadata
stainless-app[bot] Mar 6, 2026
2fdc7bd
codegen metadata
stainless-app[bot] Mar 6, 2026
9f51844
codegen metadata
stainless-app[bot] Mar 7, 2026
ebda683
codegen metadata
stainless-app[bot] Mar 7, 2026
a5c9fa5
codegen metadata
stainless-app[bot] Mar 7, 2026
d77cfbd
codegen metadata
stainless-app[bot] Mar 7, 2026
78e3fd7
codegen metadata
stainless-app[bot] Mar 7, 2026
a734d30
codegen metadata
stainless-app[bot] Mar 7, 2026
be97db6
codegen metadata
stainless-app[bot] Mar 7, 2026
77dfd8d
codegen metadata
stainless-app[bot] Mar 7, 2026
dc269cb
codegen metadata
stainless-app[bot] Mar 7, 2026
18c67c3
codegen metadata
stainless-app[bot] Mar 7, 2026
0076455
chore(internal): codegen related update
stainless-app[bot] Mar 7, 2026
cbd4f1b
chore(internal): bump palantir-java-format
stainless-app[bot] Mar 7, 2026
ae75750
codegen metadata
stainless-app[bot] Mar 7, 2026
5caed5c
codegen metadata
stainless-app[bot] Mar 7, 2026
1d7bec9
codegen metadata
stainless-app[bot] Mar 7, 2026
e9b0e8c
codegen metadata
stainless-app[bot] Mar 7, 2026
9da77b3
codegen metadata
stainless-app[bot] Mar 7, 2026
11967dd
codegen metadata
stainless-app[bot] Mar 7, 2026
9936c52
codegen metadata
stainless-app[bot] Mar 7, 2026
30972dc
codegen metadata
stainless-app[bot] Mar 7, 2026
3ed448b
codegen metadata
stainless-app[bot] Mar 7, 2026
3e4fe08
codegen metadata
stainless-app[bot] Mar 7, 2026
9434e51
codegen metadata
stainless-app[bot] Mar 8, 2026
d55edf6
codegen metadata
stainless-app[bot] Mar 8, 2026
888ded0
chore(ci): skip uploading artifacts on stainless-internal branches
stainless-app[bot] Mar 8, 2026
1a6889d
fix(client): method name conflict
stainless-app[bot] Mar 8, 2026
374286e
codegen metadata
stainless-app[bot] Mar 8, 2026
b7fa617
codegen metadata
stainless-app[bot] Mar 8, 2026
1a9776b
codegen metadata
stainless-app[bot] Mar 8, 2026
e7b7c71
codegen metadata
stainless-app[bot] Mar 8, 2026
490689d
codegen metadata
stainless-app[bot] Mar 8, 2026
ce52fb8
codegen metadata
stainless-app[bot] Mar 8, 2026
664f2de
codegen metadata
stainless-app[bot] Mar 8, 2026
3d333e9
codegen metadata
stainless-app[bot] Mar 8, 2026
cdb8044
codegen metadata
stainless-app[bot] Mar 8, 2026
4c27f2b
codegen metadata
stainless-app[bot] Mar 8, 2026
e67498c
codegen metadata
stainless-app[bot] Mar 8, 2026
8b4c042
codegen metadata
stainless-app[bot] Mar 8, 2026
39c0fed
codegen metadata
stainless-app[bot] Mar 8, 2026
3305d9d
codegen metadata
stainless-app[bot] Mar 8, 2026
a23f69c
codegen metadata
stainless-app[bot] Mar 8, 2026
8915c40
codegen metadata
stainless-app[bot] Mar 8, 2026
e1f9742
codegen metadata
stainless-app[bot] Mar 8, 2026
7243f1b
codegen metadata
stainless-app[bot] Mar 8, 2026
1b0e272
codegen metadata
stainless-app[bot] Mar 8, 2026
dd843b7
codegen metadata
stainless-app[bot] Mar 9, 2026
ac1e49f
codegen metadata
stainless-app[bot] Mar 9, 2026
5322c0f
codegen metadata
stainless-app[bot] Mar 9, 2026
69d71fe
codegen metadata
stainless-app[bot] Mar 9, 2026
8da70d1
codegen metadata
stainless-app[bot] Mar 9, 2026
283f60d
codegen metadata
stainless-app[bot] Mar 9, 2026
1a56879
codegen metadata
stainless-app[bot] Mar 9, 2026
7615374
codegen metadata
stainless-app[bot] Mar 9, 2026
35d01e6
codegen metadata
stainless-app[bot] Mar 9, 2026
dceb0b7
codegen metadata
stainless-app[bot] Mar 9, 2026
b8394a6
codegen metadata
stainless-app[bot] Mar 9, 2026
c715759
codegen metadata
stainless-app[bot] Mar 9, 2026
ace7584
codegen metadata
stainless-app[bot] Mar 9, 2026
2acfcc5
codegen metadata
stainless-app[bot] Mar 9, 2026
28f18dd
codegen metadata
stainless-app[bot] Mar 9, 2026
f857a49
codegen metadata
stainless-app[bot] Mar 9, 2026
17b027d
codegen metadata
stainless-app[bot] Mar 9, 2026
8b9a9dc
codegen metadata
stainless-app[bot] Mar 9, 2026
85de76e
codegen metadata
stainless-app[bot] Mar 9, 2026
e882ace
codegen metadata
stainless-app[bot] Mar 10, 2026
1f05cbb
codegen metadata
stainless-app[bot] Mar 10, 2026
b26678f
codegen metadata
stainless-app[bot] Mar 10, 2026
5750dee
codegen metadata
stainless-app[bot] Mar 10, 2026
066007a
codegen metadata
stainless-app[bot] Mar 10, 2026
45199e8
codegen metadata
stainless-app[bot] Mar 10, 2026
d307c1b
codegen metadata
stainless-app[bot] Mar 10, 2026
008a19a
codegen metadata
stainless-app[bot] Mar 10, 2026
b69e217
codegen metadata
stainless-app[bot] Mar 10, 2026
31580d6
codegen metadata
stainless-app[bot] Mar 10, 2026
6661029
codegen metadata
stainless-app[bot] Mar 10, 2026
5e842d0
codegen metadata
stainless-app[bot] Mar 10, 2026
0ed721e
codegen metadata
stainless-app[bot] Mar 10, 2026
87de0b5
codegen metadata
stainless-app[bot] Mar 10, 2026
c2a1bac
codegen metadata
stainless-app[bot] Mar 10, 2026
88b21a1
codegen metadata
stainless-app[bot] Mar 10, 2026
4d63489
codegen metadata
stainless-app[bot] Mar 10, 2026
c534348
codegen metadata
stainless-app[bot] Mar 10, 2026
30167a5
codegen metadata
stainless-app[bot] Mar 10, 2026
1e6f190
codegen metadata
stainless-app[bot] Mar 10, 2026
4ec5996
codegen metadata
stainless-app[bot] Mar 11, 2026
92df184
codegen metadata
stainless-app[bot] Mar 11, 2026
9a08637
codegen metadata
stainless-app[bot] Mar 11, 2026
1530fa9
codegen metadata
stainless-app[bot] Mar 11, 2026
bee3358
codegen metadata
stainless-app[bot] Mar 11, 2026
322b9a0
codegen metadata
stainless-app[bot] Mar 11, 2026
f43375d
codegen metadata
stainless-app[bot] Mar 11, 2026
5af94bb
codegen metadata
stainless-app[bot] Mar 11, 2026
400c53d
codegen metadata
stainless-app[bot] Mar 11, 2026
c8e0f26
codegen metadata
stainless-app[bot] Mar 11, 2026
98168b0
codegen metadata
stainless-app[bot] Mar 11, 2026
479d1c0
codegen metadata
stainless-app[bot] Mar 11, 2026
6d4e87d
fix(client): incorrect `Retry-After` parsing
stainless-app[bot] Mar 11, 2026
70dfdfb
codegen metadata
stainless-app[bot] Mar 11, 2026
869a8eb
codegen metadata
stainless-app[bot] Mar 11, 2026
1a2fc4d
codegen metadata
stainless-app[bot] Mar 11, 2026
c1a1c60
release: 0.6.1
stainless-app[bot] Mar 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,18 @@ jobs:
run: ./scripts/build

- name: Get GitHub OIDC Token
if: github.repository == 'stainless-sdks/sent-dm-java'
if: |-
github.repository == 'stainless-sdks/sent-dm-java' &&
!startsWith(github.ref, 'refs/heads/stl/')
id: github-oidc
uses: actions/github-script@v8
with:
script: core.setOutput('github_token', await core.getIDToken());

- name: Build and upload Maven artifacts
if: github.repository == 'stainless-sdks/sent-dm-java'
if: |-
github.repository == 'stainless-sdks/sent-dm-java' &&
!startsWith(github.ref, 'refs/heads/stl/')
env:
URL: https://pkg.stainless.com/s
AUTH: ${{ steps.github-oidc.outputs.github_token }}
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.6.0"
".": "0.6.1"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 44
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sent%2Fsent-dm-433bfd8c688a6b6d2d4f964bb59121d692798f4e2bb6cb47f6110c4f0e1f638d.yml
openapi_spec_hash: 5378295d401c8c1152c1946cc7dbd69f
config_hash: 43a0daa5b05d44a1620e3da0ea6f4fdc
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sent%2Fsent-dm-927decdfc96c667bb3842e3e58cf9a05d25053a0a00ac0113651c87b4c7b2729.yml
openapi_spec_hash: ee113dc21f1635b680e70bb9956e3594
config_hash: d475a61f5b59375bf562f85f19b80409
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# Changelog

## 0.6.1 (2026-03-11)

Full Changelog: [v0.6.0...v0.6.1](https://github.com/sentdm/sent-dm-java/compare/v0.6.0...v0.6.1)

### Bug Fixes

* **client:** incorrect `Retry-After` parsing ([6d4e87d](https://github.com/sentdm/sent-dm-java/commit/6d4e87dae24fe9c5775022473d10d1bf67feb3fd))
* **client:** method name conflict ([1a6889d](https://github.com/sentdm/sent-dm-java/commit/1a6889dbe4a2b34055b50cec925f452f2c2695ac))


### Chores

* **ci:** skip uploading artifacts on stainless-internal branches ([888ded0](https://github.com/sentdm/sent-dm-java/commit/888ded06e1c2a5ffc7e7dc93055ec0dc92953a07))
* **internal:** bump palantir-java-format ([cbd4f1b](https://github.com/sentdm/sent-dm-java/commit/cbd4f1bacdc8260d342b842ff18b830dd75d11b8))
* **internal:** codegen related update ([0076455](https://github.com/sentdm/sent-dm-java/commit/0076455451ea946dfdfb2be1ed3e57275af0d13e))
* **internal:** codegen related update ([3a09c77](https://github.com/sentdm/sent-dm-java/commit/3a09c773610e5227b9131c2941e049e3832b6d1a))
* **internal:** expand imports ([47e0e22](https://github.com/sentdm/sent-dm-java/commit/47e0e221dc542bd54edfffdccdec5f55db08f352))

## 0.6.0 (2026-02-18)

Full Changelog: [v0.5.1...v0.6.0](https://github.com/sentdm/sent-dm-java/compare/v0.5.1...v0.6.0)
Expand Down
38 changes: 33 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,27 @@

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

[![Maven Central](https://img.shields.io/maven-central/v/dm.sent/sent-dm-java)](https://central.sonatype.com/artifact/dm.sent/sent-dm-java/0.6.0)
[![javadoc](https://javadoc.io/badge2/dm.sent/sent-dm-java/0.6.0/javadoc.svg)](https://javadoc.io/doc/dm.sent/sent-dm-java/0.6.0)
[![Maven Central](https://img.shields.io/maven-central/v/dm.sent/sent-dm-java)](https://central.sonatype.com/artifact/dm.sent/sent-dm-java/0.6.1)
[![javadoc](https://javadoc.io/badge2/dm.sent/sent-dm-java/0.6.1/javadoc.svg)](https://javadoc.io/doc/dm.sent/sent-dm-java/0.6.1)

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

The Sent Dm Java SDK provides convenient access to the [Sent Dm REST API](https://docs.sent.dm) from applications written in Java.

It is generated with [Stainless](https://www.stainless.com/).

## MCP Server

Use the Sent Dm MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.

[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40sentdm%2Fsentdm-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBzZW50ZG0vc2VudGRtLW1jcCJdLCJlbnYiOnsiU0VOVF9ETV9BUElfS0VZIjoiTXkgQVBJIEtleSJ9fQ)
[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40sentdm%2Fsentdm-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40sentdm%2Fsentdm-mcp%22%5D%2C%22env%22%3A%7B%22SENT_DM_API_KEY%22%3A%22My%20API%20Key%22%7D%7D)

> Note: You may need to set environment variables in your MCP client.

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

The REST API documentation can be found on [docs.sent.dm](https://docs.sent.dm). Javadocs are available on [javadoc.io](https://javadoc.io/doc/dm.sent/sent-dm-java/0.6.0).
The REST API documentation can be found on [docs.sent.dm](https://docs.sent.dm). Javadocs are available on [javadoc.io](https://javadoc.io/doc/dm.sent/sent-dm-java/0.6.1).

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

Expand All @@ -24,7 +33,7 @@ The REST API documentation can be found on [docs.sent.dm](https://docs.sent.dm).
### Gradle

```kotlin
implementation("dm.sent:sent-dm-java:0.6.0")
implementation("dm.sent:sent-dm-java:0.6.1")
```

### Maven
Expand All @@ -33,7 +42,7 @@ implementation("dm.sent:sent-dm-java:0.6.0")
<dependency>
<groupId>dm.sent</groupId>
<artifactId>sent-dm-java</artifactId>
<version>0.6.0</version>
<version>0.6.1</version>
</dependency>
```

Expand Down Expand Up @@ -391,6 +400,25 @@ SentDmClient client = SentDmOkHttpClient.builder()
.build();
```

### Connection pooling

To customize the underlying OkHttp connection pool, configure the client using the `maxIdleConnections` and `keepAliveDuration` methods:

```java
import dm.sent.client.SentDmClient;
import dm.sent.client.okhttp.SentDmOkHttpClient;
import java.time.Duration;

SentDmClient client = SentDmOkHttpClient.builder()
.fromEnv()
// If `maxIdleConnections` is set, then `keepAliveDuration` must be set, and vice versa.
.maxIdleConnections(10)
.keepAliveDuration(Duration.ofMinutes(2))
.build();
```

If both options are unset, OkHttp's default connection pool settings are used.

### HTTPS

> [!NOTE]
Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repositories {

allprojects {
group = "dm.sent"
version = "0.6.0" // x-release-please-version
version = "0.6.1" // x-release-please-version
}

subprojects {
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/sent-dm.java.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ tasks.withType<Test>().configureEach {

val palantir by configurations.creating
dependencies {
palantir("com.palantir.javaformat:palantir-java-format:2.73.0")
palantir("com.palantir.javaformat:palantir-java-format:2.89.0")
}

fun registerPalantir(
Expand Down
41 changes: 0 additions & 41 deletions scripts/mock

This file was deleted.

46 changes: 0 additions & 46 deletions scripts/test
Original file line number Diff line number Diff line change
Expand Up @@ -4,53 +4,7 @@ set -e

cd "$(dirname "$0")/.."

RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color

function prism_is_running() {
curl --silent "http://localhost:4010" >/dev/null 2>&1
}

kill_server_on_port() {
pids=$(lsof -t -i tcp:"$1" || echo "")
if [ "$pids" != "" ]; then
kill "$pids"
echo "Stopped $pids."
fi
}

function is_overriding_api_base_url() {
[ -n "$TEST_API_BASE_URL" ]
}

if ! is_overriding_api_base_url && ! prism_is_running ; then
# When we exit this script, make sure to kill the background mock server process
trap 'kill_server_on_port 4010' EXIT

# Start the dev server
./scripts/mock --daemon
fi

if is_overriding_api_base_url ; then
echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}"
echo
elif ! prism_is_running ; then
echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server"
echo -e "running against your OpenAPI spec."
echo
echo -e "To run the server, pass in the path or url of your OpenAPI"
echo -e "spec to the prism command:"
echo
echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}"
echo

exit 1
else
echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}"
echo
fi

echo "==> Running tests"
./gradlew test "$@"
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,13 @@ import java.time.Duration
import java.util.concurrent.CancellationException
import java.util.concurrent.CompletableFuture
import java.util.concurrent.ExecutorService
import java.util.concurrent.TimeUnit
import javax.net.ssl.HostnameVerifier
import javax.net.ssl.SSLSocketFactory
import javax.net.ssl.X509TrustManager
import okhttp3.Call
import okhttp3.Callback
import okhttp3.ConnectionPool
import okhttp3.Dispatcher
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.MediaType
Expand All @@ -33,7 +35,7 @@ import okhttp3.logging.HttpLoggingInterceptor
import okio.BufferedSink

class OkHttpClient
private constructor(@JvmSynthetic internal val okHttpClient: okhttp3.OkHttpClient) : HttpClient {
internal constructor(@JvmSynthetic internal val okHttpClient: okhttp3.OkHttpClient) : HttpClient {

override fun execute(request: HttpRequest, requestOptions: RequestOptions): HttpResponse {
val call = newCall(request, requestOptions)
Expand Down Expand Up @@ -200,6 +202,8 @@ private constructor(@JvmSynthetic internal val okHttpClient: okhttp3.OkHttpClien

private var timeout: Timeout = Timeout.default()
private var proxy: Proxy? = null
private var maxIdleConnections: Int? = null
private var keepAliveDuration: Duration? = null
private var dispatcherExecutorService: ExecutorService? = null
private var sslSocketFactory: SSLSocketFactory? = null
private var trustManager: X509TrustManager? = null
Expand All @@ -211,6 +215,28 @@ private constructor(@JvmSynthetic internal val okHttpClient: okhttp3.OkHttpClien

fun proxy(proxy: Proxy?) = apply { this.proxy = proxy }

/**
* Sets the maximum number of idle connections kept by the underlying [ConnectionPool].
*
* If this is set, then [keepAliveDuration] must also be set.
*
* If unset, then OkHttp's default is used.
*/
fun maxIdleConnections(maxIdleConnections: Int?) = apply {
this.maxIdleConnections = maxIdleConnections
}

/**
* Sets the keep-alive duration for idle connections in the underlying [ConnectionPool].
*
* If this is set, then [maxIdleConnections] must also be set.
*
* If unset, then OkHttp's default is used.
*/
fun keepAliveDuration(keepAliveDuration: Duration?) = apply {
this.keepAliveDuration = keepAliveDuration
}

fun dispatcherExecutorService(dispatcherExecutorService: ExecutorService?) = apply {
this.dispatcherExecutorService = dispatcherExecutorService
}
Expand Down Expand Up @@ -240,6 +266,22 @@ private constructor(@JvmSynthetic internal val okHttpClient: okhttp3.OkHttpClien
.apply {
dispatcherExecutorService?.let { dispatcher(Dispatcher(it)) }

val maxIdleConnections = maxIdleConnections
val keepAliveDuration = keepAliveDuration
if (maxIdleConnections != null && keepAliveDuration != null) {
connectionPool(
ConnectionPool(
maxIdleConnections,
keepAliveDuration.toNanos(),
TimeUnit.NANOSECONDS,
)
)
} else {
check((maxIdleConnections != null) == (keepAliveDuration != null)) {
"Both or none of `maxIdleConnections` and `keepAliveDuration` must be set, but only one was set"
}
}

val sslSocketFactory = sslSocketFactory
val trustManager = trustManager
if (sslSocketFactory != null && trustManager != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ class SentDmOkHttpClient private constructor() {
private var clientOptions: ClientOptions.Builder = ClientOptions.builder()
private var dispatcherExecutorService: ExecutorService? = null
private var proxy: Proxy? = null
private var maxIdleConnections: Int? = null
private var keepAliveDuration: Duration? = null
private var sslSocketFactory: SSLSocketFactory? = null
private var trustManager: X509TrustManager? = null
private var hostnameVerifier: HostnameVerifier? = null
Expand Down Expand Up @@ -75,6 +77,46 @@ class SentDmOkHttpClient private constructor() {
/** Alias for calling [Builder.proxy] with `proxy.orElse(null)`. */
fun proxy(proxy: Optional<Proxy>) = proxy(proxy.getOrNull())

/**
* The maximum number of idle connections kept by the underlying OkHttp connection pool.
*
* If this is set, then [keepAliveDuration] must also be set.
*
* If unset, then OkHttp's default is used.
*/
fun maxIdleConnections(maxIdleConnections: Int?) = apply {
this.maxIdleConnections = maxIdleConnections
}

/**
* Alias for [Builder.maxIdleConnections].
*
* This unboxed primitive overload exists for backwards compatibility.
*/
fun maxIdleConnections(maxIdleConnections: Int) =
maxIdleConnections(maxIdleConnections as Int?)

/**
* Alias for calling [Builder.maxIdleConnections] with `maxIdleConnections.orElse(null)`.
*/
fun maxIdleConnections(maxIdleConnections: Optional<Int>) =
maxIdleConnections(maxIdleConnections.getOrNull())

/**
* The keep-alive duration for idle connections in the underlying OkHttp connection pool.
*
* If this is set, then [maxIdleConnections] must also be set.
*
* If unset, then OkHttp's default is used.
*/
fun keepAliveDuration(keepAliveDuration: Duration?) = apply {
this.keepAliveDuration = keepAliveDuration
}

/** Alias for calling [Builder.keepAliveDuration] with `keepAliveDuration.orElse(null)`. */
fun keepAliveDuration(keepAliveDuration: Optional<Duration>) =
keepAliveDuration(keepAliveDuration.getOrNull())

/**
* The socket factory used to secure HTTPS connections.
*
Expand Down Expand Up @@ -321,6 +363,8 @@ class SentDmOkHttpClient private constructor() {
OkHttpClient.builder()
.timeout(clientOptions.timeout())
.proxy(proxy)
.maxIdleConnections(maxIdleConnections)
.keepAliveDuration(keepAliveDuration)
.dispatcherExecutorService(dispatcherExecutorService)
.sslSocketFactory(sslSocketFactory)
.trustManager(trustManager)
Expand Down
Loading
Loading