Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
27cbb5b
feat: update by openapi refactor
mogita Feb 17, 2026
ee3887d
test: update types for openapi refactor
mogita Feb 17, 2026
3042e66
test: fix formatting
mogita Feb 17, 2026
306c932
feat: update by openapi refactor
mogita Feb 17, 2026
ee4b8c4
feat: update by openapi refactor
mogita Feb 19, 2026
49f6948
fix: use the correct name of stop campaign
mogita Feb 19, 2026
1b2ec7c
feat: add ChatTestBase with chat integration test helpers
mogita Feb 26, 2026
2a7d0b3
feat: UpsertUsers test for Java SDK
mogita Feb 26, 2026
2d2b283
feat: add QueryUsers integration test
mogita Feb 26, 2026
30534df
feat: QueryUsersWithOffsetLimit test for Java SDK
mogita Feb 26, 2026
5683e68
feat: PartialUpdateUser - set custom fields and unset country
mogita Feb 26, 2026
f061e4d
feat: BlockUnblockUser integration test for chat users
mogita Feb 26, 2026
abd3391
feat: DeactivateReactivateUser Java integration test
mogita Feb 26, 2026
b591a69
feat: add DeleteUsers integration test
mogita Feb 26, 2026
69892f3
feat: ExportUser - export a user and verify response
mogita Feb 26, 2026
f8fc952
feat: add CreateGuest test to ChatUserIntegrationTest
mogita Feb 26, 2026
e204ace
feat: UpsertUsersWithRoleAndTeamsRole test for Java SDK
mogita Feb 26, 2026
2e36899
feat: PartialUpdateUserWithTeam - partial update user to add teams an…
mogita Feb 26, 2026
ad92c7b
feat: add UpdatePrivacySettings integration test
mogita Feb 26, 2026
f868fd9
feat: PartialUpdatePrivacySettings integration test for Java SDK
mogita Feb 26, 2026
34b83c9
feat: QueryUsersWithDeactivated - deactivate one user, query without/…
mogita Feb 26, 2026
6e8fd3a
feat: DeactivateUsersPlural - deactivate multiple users async task (J…
mogita Feb 26, 2026
3ade0ce
feat: add UserCustomData integration test
mogita Feb 26, 2026
8a80b73
feat: add ChatChannelIntegrationTest with CreateChannelWithID test
mogita Feb 26, 2026
347c3da
feat: CreateChannelWithMembers integration test
mogita Feb 26, 2026
160cc14
feat: add CreateDistinctChannel integration test
mogita Feb 26, 2026
ecb6ccf
feat: add QueryChannels integration test
mogita Feb 26, 2026
f71ba0a
feat: UpdateChannel integration test for Java SDK
mogita Feb 27, 2026
8e5d46c
feat: add PartialUpdateChannel integration test
mogita Feb 27, 2026
3cbd094
feat: add DeleteChannel integration test
mogita Feb 27, 2026
e515f27
feat: add HardDeleteChannels integration test
mogita Feb 27, 2026
539c000
feat: AddRemoveMembers channel integration test
mogita Feb 27, 2026
45331a9
feat: add QueryMembers integration test for Java SDK
mogita Feb 27, 2026
8abe418
feat: InviteAcceptReject channel integration test
mogita Feb 27, 2026
acabba3
feat: HideShowChannel integration test
mogita Feb 27, 2026
116b96a
feat: TruncateChannel integration test
mogita Feb 27, 2026
afe10a0
feat: add FreezeUnfreezeChannel integration test
mogita Feb 27, 2026
6bed9f5
feat: add MarkReadUnread channel integration test
mogita Feb 27, 2026
cb8a58e
feat: add MuteUnmuteChannel integration test
mogita Feb 27, 2026
0c1dadd
feat: add MemberPartialUpdate integration test
mogita Feb 27, 2026
c7d6ec8
feat: AssignRoles - assign channel_moderator role, verify via QueryMe…
mogita Feb 27, 2026
43459d9
feat: add AddDemoteModerators integration test
mogita Feb 27, 2026
f297087
feat: add MarkUnreadWithThread channel integration test
mogita Feb 27, 2026
4bd2592
feat: TruncateWithOptions - truncate channel with message, skip_push,…
mogita Feb 27, 2026
a228338
feat: add PinUnpinChannel integration test
mogita Feb 27, 2026
5cc0e75
feat: ArchiveUnarchiveChannel integration test
mogita Feb 27, 2026
35ed762
feat: add AddMembersWithRoles integration test
mogita Feb 27, 2026
9cc962b
feat: MessageCount - send message, query channel, verify message_coun…
mogita Feb 27, 2026
400ee85
feat: SendChannelEvent - send typing.start event in channel
mogita Feb 27, 2026
3d4d8d6
feat: add FilterTags channel integration test
mogita Feb 27, 2026
457131e
feat: add MessageCountDisabled channel integration test
mogita Feb 27, 2026
005e320
feat: add MarkUnreadWithTimestamp integration test
mogita Feb 27, 2026
4808719
feat: add HideForCreator channel integration test
mogita Feb 27, 2026
778da49
feat: UploadAndDeleteFile - upload text file to channel, verify URL, …
mogita Feb 27, 2026
67b5f0e
feat: UploadAndDeleteImage channel integration test
mogita Feb 27, 2026
bed54e7
feat: SendAndGetMessage - send message, get by ID, verify text
mogita Feb 27, 2026
dc38cac
feat: add GetManyMessages integration test
mogita Feb 27, 2026
9c1d60c
feat: add UpdateMessage integration test
mogita Feb 27, 2026
9a039ef
feat: add PartialUpdateMessage integration test
mogita Feb 27, 2026
eccd590
feat: add DeleteMessage and HardDeleteMessage integration tests
mogita Feb 27, 2026
31a60ec
feat: add PinUnpinMessage integration test
mogita Feb 27, 2026
25ac148
feat: TranslateMessage integration test
mogita Feb 27, 2026
3d0086d
feat: ThreadReply - send parent, send reply with parent_id, get replies
mogita Feb 27, 2026
8ec6ae1
feat: add SearchMessages integration test
mogita Feb 27, 2026
c0e628f
feat: add SilentMessage integration test
mogita Feb 27, 2026
0ce2b2a
feat: add testPendingMessage integration test
mogita Feb 27, 2026
2369ad3
feat: add QueryMessageHistory and QueryMessageHistorySort tests
mogita Feb 27, 2026
03e0931
feat: add testSkipEnrichUrl integration test
mogita Feb 27, 2026
2321468
feat: add testKeepChannelHidden message integration test
mogita Feb 27, 2026
3bfc747
feat: add UndeleteMessage integration test (skip gracefully if undele…
mogita Feb 27, 2026
c7ec478
feat: RestrictedVisibility message test (skip if not enabled)
mogita Feb 27, 2026
92fbae7
feat: add DeleteMessageForMe integration test
mogita Feb 27, 2026
68c9fdb
feat: PinExpiration - pin with 3s expiry, wait 4s, verify expired
mogita Feb 27, 2026
4c21d9b
feat: add SystemMessage integration test
mogita Feb 27, 2026
143526c
feat: add PendingFalse integration test for ChatMessageIntegrationTest
mogita Feb 27, 2026
b72d982
feat: add SearchWithMessageFilters integration test
mogita Feb 27, 2026
fc3c25b
feat: add testSearchQueryAndMessageFiltersError integration test
mogita Feb 27, 2026
c6cbc5a
feat: add SearchOffsetAndSortError integration test
mogita Feb 27, 2026
b5aac03
feat: add SearchOffsetAndNextError test to ChatMessageIntegrationTest
mogita Feb 27, 2026
c272942
feat: add ChannelRoleInMember test to ChatMessageIntegrationTest
mogita Feb 27, 2026
50ac156
feat: add ChatReactionIntegrationTest with SendAndGetReactions, Delet…
mogita Feb 27, 2026
235f5f0
feat: add CreateAndQueryPoll integration test for Java SDK
mogita Feb 27, 2026
01c4101
feat: add CastPollVote integration test to ChatPollsIntegrationTest
mogita Feb 27, 2026
d27f44e
feat: CreateListDeleteDevice test in ChatMiscIntegrationTest
mogita Feb 27, 2026
f7d311e
feat: CreateListDeleteBlocklist integration test
mogita Feb 27, 2026
5a1c5a6
feat: CreateListDeleteCommand - Java SDK misc chat test
mogita Feb 27, 2026
7844882
feat: add CreateUpdateDeleteChannelType integration test
mogita Feb 27, 2026
c102abe
feat: ListChannelTypes - list all channel types, verify default types…
mogita Feb 27, 2026
6a9a280
feat: ListPermissions integration test
mogita Feb 27, 2026
a79d770
feat: add CreatePermission and GetPermission integration tests
mogita Feb 27, 2026
3f390c3
feat: add QueryBannedUsers integration test to ChatMiscIntegrationTest
mogita Feb 27, 2026
ba0e135
feat: add MuteUnmuteUser integration test to ChatMiscIntegrationTest
mogita Feb 27, 2026
cd5ce86
feat: add GetAppSettings integration test to ChatMiscIntegrationTest
mogita Feb 27, 2026
d1f35a8
feat: ExportChannels integration test
mogita Feb 27, 2026
5e68692
feat: add testThreads integration test for query and get thread opera…
mogita Feb 27, 2026
b9ef307
feat: add GetUnreadCounts integration test to ChatMiscIntegrationTest
mogita Feb 27, 2026
f3c94d2
feat: add GetUnreadCountsBatch integration test
mogita Feb 27, 2026
ffb2e89
feat: add Reminders test to ChatMiscIntegrationTest (skip if not enab…
mogita Feb 27, 2026
2ac0087
feat: add SendUserCustomEvent integration test
mogita Feb 27, 2026
05c1d37
feat: add QueryTeamUsageStats integration test
mogita Feb 27, 2026
ef4e83c
feat: add ChannelBatchUpdate integration test
mogita Feb 27, 2026
44b1030
feat: CRUDCallTypeOperations video integration test for Java SDK
mogita Feb 27, 2026
d287d60
feat: add CreateCallWithMembers video integration test
mogita Feb 27, 2026
669c722
feat: BlockUnblockUserFromCalls video integration test
mogita Feb 27, 2026
7552f20
feat: add SendCustomEvent video integration test
mogita Feb 27, 2026
4c37597
feat: add MuteAll video integration test
mogita Feb 27, 2026
26ade1c
feat: add MuteSomeUsers video integration test
mogita Feb 27, 2026
5bb4698
feat: add UpdateUserPermissions video integration test
mogita Feb 27, 2026
d34f5b3
feat: add DeactivateUser video integration test
mogita Feb 27, 2026
9f655a3
feat: add testCreateCallWithSessionTimer video integration test
mogita Feb 27, 2026
37c3dd5
feat: add UserBlocking video integration test
mogita Feb 27, 2026
8be37bb
feat: CreateCallWithBackstageAndJoinAhead video integration test
mogita Feb 27, 2026
dc55c4e
feat: DeleteCall (soft) - soft delete call, verify not found
mogita Feb 27, 2026
3a78503
feat: HardDeleteCall video integration test
mogita Feb 27, 2026
6816909
feat: add Teams video integration test
mogita Feb 27, 2026
7c7fd00
feat: ExternalStorageOperations video integration test
mogita Feb 27, 2026
9da5cdb
feat: EnableCallRecordingAndBackstageMode integration test
mogita Feb 27, 2026
7af6d46
feat: add testDeleteRecordingsAndTranscriptions to VideoIntegrationTest
mogita Feb 27, 2026
695f82f
feat: add ModerationIntegrationTest with BanUnbanUser test
mogita Feb 27, 2026
660ccfa
feat: MuteUnmuteUser moderation integration test for Java SDK
mogita Feb 27, 2026
942a128
feat: add FlagMessageAndUser moderation integration test
mogita Feb 27, 2026
fc3a49c
docs: update changelog
mogita Mar 2, 2026
70363fc
style: fix code formatting
mogita Mar 2, 2026
9fd7d28
ci: add pre-release workflow
mogita Mar 2, 2026
1317433
feat: update by openapi refactor
mogita Mar 2, 2026
d35a720
fix: compilation error
mogita Mar 2, 2026
7285563
style: fix code formatting
mogita Mar 2, 2026
248889f
ci: pre-release by making a pre-release on github
mogita Mar 2, 2026
ef74273
feat: update by openapi refactor
mogita Mar 4, 2026
2b75c91
feat: update by openapi refactor
mogita Mar 4, 2026
ff1684b
test: chat and video clients
mogita Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
52 changes: 52 additions & 0 deletions .github/workflows/prerelease.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Pre-release

on:
release:
types: [prereleased]

jobs:
Prerelease:
name: 🚀 Pre-release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Resolve version
run: |
TAG="${{ github.event.release.tag_name }}"
if [ -n "$TAG" ]; then
echo "VERSION=$TAG" >> $GITHUB_ENV
else
PROP=$(grep '^version=' gradle.properties | cut -d'=' -f2)
if [ -n "$PROP" ]; then
echo "VERSION=$PROP" >> $GITHUB_ENV
else
echo "❌ Could not determine version from tag or gradle.properties" && exit 1
fi
fi

- name: Setup JDK 17
uses: actions/setup-java@v5.1.0
with:
distribution: 'corretto'
java-version: '17'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Publish to MavenCentral
run: |
./gradlew -Pversion=$VERSION publishToSonatype --no-daemon --max-workers 1 closeAndReleaseSonatypeStagingRepository
env:
STREAM_API_KEY: ${{ vars.STREAM_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_API_SECRET }}
GPG_KEY_CONTENTS: ${{ secrets.GPG_KEY_CONTENTS }}
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
SIGNING_SECRET_KEY_RING_FILE: ${{ secrets.SIGNING_SECRET_KEY_RING_FILE }}
SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}

2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
script: |
// Getting the release version from the PR source branch
// Source branch looks like this: release-1.0.0
const version = context.payload.pull_request.head.ref.split('-')[1]
const version = context.payload.pull_request.head.ref.replace(/^release-/, '')
core.exportVariable('VERSION', version)

- name: Setup JDK 17
Expand Down
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,25 @@

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

## [6.0.0-beta.1](https://github.com/GetStream/stream-sdk-java/compare/5.0.1...6.0.0-beta.1) (2026-02-27)

### Breaking Changes

- Type names across all products now follow the OpenAPI spec naming convention: response types are suffixed with `Response`, input types with `Request`. See [MIGRATION_v5_to_v6.md](./MIGRATION_v5_to_v6.md) for the complete rename mapping.
- `Event` (WebSocket envelope type) renamed to `WSEvent`. Base event type renamed from `BaseEvent` to `Event` (with field `type` instead of `T`).
- Event composition changed from monolithic `*Preset` embeds to modular `Has*` types.
- `Pager` renamed to `PagerResponse` and migrated from offset-based to cursor-based pagination (`next`/`prev` tokens).

### Added

- Full product coverage: Chat, Video, Moderation, and Feeds APIs are all supported in a single SDK.
- **Feeds**: activities, feeds, feed groups, follows, comments, reactions, collections, bookmarks, membership levels, feed views, and more.
- **Video**: calls, recordings, transcription, closed captions, SFU, call statistics, user feedback analytics, and more.
- **Moderation**: flags, review queue, moderation rules, config, appeals, moderation logs, and more.
- Push notification types, preferences, and templates.
- Webhook support: `WHEvent` envelope class for receiving webhook payloads, utility methods for decoding and verifying webhook signatures, and a full set of individual typed event classes for every event across all products (Chat, Video, Moderation, Feeds) usable as discriminated event types.
- Cursor-based pagination across all list endpoints.

### [5.0.1](https://github.com/GetStream/stream-sdk-java/compare/5.0.0...5.0.1) (2026-02-11)

## [5.0.0](https://github.com/GetStream/stream-sdk-java/compare/4.1.1...5.0.0) (2026-02-03)
Expand Down
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,7 @@ The job creates a pull request with the changelog. Check if it looks good.
- Merge the pull request.

Once the PR is merged, it automatically kicks off another job which will upload the Gem to RubyGems.org and creates a GitHub release.

### Pre-releases

Push a tag (e.g. `1.0.0-beta.1`), then go to **GitHub Releases → Draft a new release**, select the tag, check **"Set as a pre-release"**, and publish. The CI job will trigger automatically and publish to MavenCentral.
213 changes: 213 additions & 0 deletions MIGRATION_v5_to_v6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
# Migration Guide: v5 → v6

This guide covers all breaking changes when upgrading from `stream-sdk-java` v5 to v6.

## Overview

v6 is a full OpenAPI-aligned release. The primary change is a **systematic type renaming**: types that appear in API responses now have a `Response` suffix, and input types have a `Request` suffix. There are no removed features — all functionality from v5 is available in v6. Additionally, v6 adds complete coverage of the **Feeds**, **Video**, and **Moderation** product APIs.

## Installation

Update your Maven `pom.xml`:

```xml
<dependency>
<groupId>io.getstream</groupId>
<artifactId>stream-sdk-java</artifactId>
<version>6.0.0</version>
</dependency>
```

Or your Gradle `build.gradle`:

```groovy
implementation 'io.getstream:stream-sdk-java:6.0.0'
```

## Naming Conventions

All types use `PascalCase` and fields use `camelCase` (standard Java convention). The general rules:

- Types returned in API responses: `Foo` → `FooResponse`
- Types used as API inputs: `Foo` → `FooRequest`
- Some moderation action payloads: `FooRequest` → `FooRequestPayload`

## Breaking Changes

### Common / Shared Types

| v5 | v6 | Notes |
| --- | --- | --- |
| `ApplicationConfig` | `AppResponseFields` | App configuration in responses |
| `ChannelPushPreferences` | `ChannelPushPreferencesResponse` | Per-channel push settings |
| `Device` | `DeviceResponse` | Device data (push, voip) |
| `Event` | `WSEvent` | WebSocket event envelope |
| `FeedsPreferences` | `FeedsPreferencesResponse` | Feeds push preferences |
| `ImportV2Task` | `ImportV2TaskItem` | V2 import task |
| `OwnUser` | `OwnUserResponse` | Authenticated user data |
| `Pager` | `PagerResponse` | Now cursor-based (`next`/`prev`) |
| `PushPreferences` | `PushPreferencesResponse` | Push preferences |
| `PushTemplate` | `PushTemplateResponse` | Push template |
| `PrivacySettings` | `PrivacySettingsResponse` | Typing indicators, read receipts |
| `RateLimitInfo` | `LimitInfoResponse` | Rate limit info |
| `SortParam` | `SortParamRequest` | Sort parameter for queries |
| `User` | `UserResponse` | Full user in responses |
| `UserBlock` | `BlockedUserResponse` | Blocked user details |
| `UserCustomEvent` | `CustomEvent` | Custom user event |
| `UserMute` | `UserMuteResponse` | User mute details |

### Event System

| Before (v5) | After (v6) | Notes |
| --- | --- | --- |
| `BaseEvent` (field `T`) | `Event` (field `type`) | Base event type |
| `Event` (WS envelope) | `WSEvent` | WebSocket event wrapper |
| `*Preset` embeds | `Has*` composition types | e.g., `HasChannel`, `HasMessage` |
| — | `WHEvent` | New webhook envelope type |

New composition types: `HasOwnUser`, `HasUserCommonFields`, `HasUserPrivacyFields`, `HasOptionalUserCommonFields`, `HasChannel`, `HasOptionalChannel`, `HasMessage`, `HasOptionalMessage`, `HasThreadParticipants`, `HasChannelTypeAndID`.

### Chat Types

| v5 | v6 | Notes |
| --- | --- | --- |
| `Campaign` | `CampaignResponse` | |
| `CampaignStats` | `CampaignStatsResponse` | |
| `Channel` | `ChannelResponse` | |
| `ChannelConfigFields` | `ChannelConfigWithInfo` | Channel config + commands/grants |
| `ChannelMember` | `ChannelMemberResponse` | |
| `ChannelTypeConfigWithInfo` | `ChannelTypeConfig` | |
| `ConfigOverrides` | `ConfigOverridesRequest` | |
| `DraftMessage` / `DraftMessagePayload` | `DraftResponse` | Two types merged into one |
| `Message` | `MessageResponse` | |
| `MessageReminder` | `ReminderResponseData` | |
| `PendingMessage` | `PendingMessageResponse` | |
| `Poll` | `PollResponse` | |
| `PollOption` | `PollOptionResponse` | |
| `PollVote` | `PollVoteResponse` | |
| `Reaction` | `ReactionResponse` | |
| `ReadState` | `ReadStateResponse` | |
| `Thread` | `ThreadResponse` | |

### Video Types

| v5 | v6 | Notes |
| --- | --- | --- |
| `AudioSettings` | `AudioSettingsResponse` | |
| `BackstageSettings` | `BackstageSettingsResponse` | |
| `BroadcastSettings` | `BroadcastSettingsResponse` | |
| `Call` | `CallResponse` | |
| `CallEgress` | `EgressResponse` | |
| `CallMember` | `MemberResponse` | Note: not `CallMemberResponse` |
| `CallParticipant` | `CallParticipantResponse` | |
| `CallParticipantFeedback` | *(removed)* | Use `CollectUserFeedbackRequest` |
| `CallSession` | `CallSessionResponse` | |
| `CallSettings` | `CallSettingsResponse` | |
| `CallType` | `CallTypeResponse` | |
| `EventNotificationSettings` | `EventNotificationSettingsResponse` | |
| `FrameRecordSettings` | `FrameRecordingSettingsResponse` | `Recording` inserted in name |
| `GeofenceSettings` | `GeofenceSettingsResponse` | |
| `HLSSettings` | `HLSSettingsResponse` | |
| `IndividualRecordSettings` | `IndividualRecordingSettingsResponse` | `Recording` inserted in name |
| `IngressSettings` | `IngressSettingsResponse` | |
| `IngressSource` | `IngressSourceResponse` | |
| `IngressAudioEncodingOptions` | `IngressAudioEncodingResponse` | Shortened name |
| `IngressVideoEncodingOptions` | `IngressVideoEncodingResponse` | Shortened name |
| `IngressVideoLayer` | `IngressVideoLayerResponse` | |
| `LimitsSettings` | `LimitsSettingsResponse` | |
| `NotificationSettings` | `NotificationSettingsResponse` | |
| `RawRecordSettings` | `RawRecordingSettingsResponse` | `Recording` inserted in name |
| `RecordSettings` | `RecordSettingsResponse` | |
| `RingSettings` | `RingSettingsResponse` | |
| `RTMPSettings` | `RTMPSettingsResponse` | |
| `ScreensharingSettings` | `ScreensharingSettingsResponse` | |
| `SessionSettings` | `SessionSettingsResponse` | |
| `SIPCallConfigs` | `SIPCallConfigsResponse` | |
| `SIPCallerConfigs` | `SIPCallerConfigsResponse` | |
| `SIPDirectRoutingRuleCallConfigs` | `SIPDirectRoutingRuleCallConfigsResponse` | |
| `SIPInboundRoutingRules` | `SIPInboundRoutingRuleResponse` | Plural → singular |
| `SIPPinProtectionConfigs` | `SIPPinProtectionConfigsResponse` | |
| `SIPTrunk` | `SIPTrunkResponse` | |
| `ThumbnailsSettings` | `ThumbnailsSettingsResponse` | |
| `TranscriptionSettings` | `TranscriptionSettingsResponse` | |
| `VideoSettings` | `VideoSettingsResponse` | |

### Moderation Types

| v5 | v6 | Notes |
| --- | --- | --- |
| `ActionLog` | `ActionLogResponse` | |
| `Appeal` | `AppealItemResponse` | |
| `AutomodDetails` | `AutomodDetailsResponse` | |
| `Ban` | `BanInfoResponse` | |
| `BanOptions` | *(removed)* | Merged into `BanActionRequestPayload` |
| `BanActionRequest` | `BanActionRequestPayload` | |
| `BlockActionRequest` | `BlockActionRequestPayload` | |
| `BlockedMessage` | *(removed)* | Internal only |
| `CustomActionRequest` | `CustomActionRequestPayload` | |
| `DeleteMessageRequest` | `DeleteMessageRequestPayload` | |
| `DeleteUserRequest` | `DeleteUserRequestPayload` | |
| `EntityCreator` | `EntityCreatorResponse` | |
| `Evaluation` | `EvaluationResponse` | |
| `FeedsModerationTemplate` | `QueryFeedModerationTemplate` | No `Response` suffix |
| `FeedsModerationTemplateConfig` | `FeedsModerationTemplateConfigPayload` | |
| `Flag` | *(removed)* | Use `ModerationFlagResponse` |
| `Flag2` | `ModerationFlagResponse` | |
| `FlagDetails` | `FlagDetailsResponse` | |
| `FlagFeedback` | `FlagFeedbackResponse` | |
| `FlagMessageDetails` | `FlagMessageDetailsResponse` | |
| `FlagReport` | *(removed)* | Internal only |
| `FutureChannelBan` | `FutureChannelBanResponse` | |
| `MarkReviewedRequest` | `MarkReviewedRequestPayload` | |
| `Match` | `MatchResponse` | |
| `ModerationActionConfig` | `ModerationActionConfigResponse` | |
| `ModerationBulkSubmitActionRequest` | `BulkSubmitActionRequest` | `Moderation` prefix dropped |
| `ModerationConfig` | `ConfigResponse` | |
| `ModerationFlags` | *(removed)* | Use `List<ModerationFlagResponse>` |
| `ModerationLog` | *(removed)* | Use `ActionLogResponse` |
| `ModerationLogResponse` | *(removed)* | Use `QueryModerationLogsResponse` |
| `ModerationUsageStats` | `ModerationUsageStatsResponse` | |
| `RestoreActionRequest` | `RestoreActionRequestPayload` | |
| `ReviewQueueItem` | `ReviewQueueItemResponse` | |
| `Rule` | `RuleResponse` | |
| `ShadowBlockActionRequest` | `ShadowBlockActionRequestPayload` | |
| `Task` | `TaskResponse` | |
| `Trigger` | `TriggerResponse` | |
| `UnbanActionRequest` | `UnbanActionRequestPayload` | |
| `UnblockActionRequest` | `UnblockActionRequestPayload` | |
| `VideoEndCallRequest` | `VideoEndCallRequestPayload` | |
| `VideoKickUserRequest` | `VideoKickUserRequestPayload` | |

### Feeds Types

| v5 | v6 | Notes |
| --- | --- | --- |
| `Activity` | `ActivityResponse` | |
| `ActivityFeedback` | `ActivityFeedbackRequest` | Request-only (no `Response` suffix) |
| `ActivityMark` | `MarkActivityRequest` | |
| `ActivityPin` | `ActivityPinResponse` | |
| `AggregatedActivity` | `AggregatedActivityResponse` | |
| `Bookmark` | `BookmarkResponse` | |
| `BookmarkFolder` | `BookmarkFolderResponse` | |
| `Collection` | `CollectionResponse` | |
| `Comment` | `CommentResponse` | |
| `CommentMedia` | *(removed)* | Embedded inline in `CommentResponse` |
| `CommentMention` | *(removed)* | Embedded inline in `CommentResponse` |
| `DenormalizedFeedsReaction` | *(removed)* | Internal only |
| `Feed` | `FeedResponse` | |
| `FeedGroup` | `FeedGroupResponse` | |
| `FeedMember` | `FeedMemberResponse` | |
| `FeedsReaction` | `FeedsReactionResponse` | |
| `FeedsReactionGroup` | `FeedsReactionGroupResponse` | |
| `FeedSuggestion` | `FeedSuggestionResponse` | |
| `FeedView` | `FeedViewResponse` | |
| `FeedVisibilityInfo` | `FeedVisibilityResponse` | |
| `Follow` | `FollowResponse` | |
| `MembershipLevel` | `MembershipLevelResponse` | |
| `ThreadedComment` | `ThreadedCommentResponse` | |

## Getting Help

- [Stream documentation](https://getstream.io/docs/)
- [GitHub Issues](https://github.com/GetStream/stream-sdk-java/issues)
- [Stream support](https://getstream.io/contact/support/)
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ call.getOrCreate(
.build());
```

> **Note:** When constructing models, always use the **builder pattern** (e.g. `UserRequest.builder().id("id").build()`).
> While some generated models expose positional constructors (for example via Lombok's `@AllArgsConstructor`), their parameter order is not part of the public API and may change between releases; using positional constructors is therefore strongly discouraged and may break across SDK updates.

## Development

To run tests, create the `local.properties` file using the `local.properties.example` and adjust it to have valid API credentials:
Expand Down
12 changes: 7 additions & 5 deletions generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ fi
set -ex

# cd in API repo, generate new spec and then generate code from it
( cd $SOURCE_PATH ; make openapi ; go run ./cmd/chat-manager openapi generate-client --language java --spec ./releases/v2/serverside-api.yaml --output ../stream-sdk-java/src/main/java/io/getstream )
( cd $SOURCE_PATH ; make openapi ; go run ./cmd/chat-manager openapi generate-client --language java --spec ./releases/v2/serverside-api.yaml --output ../stream-sdk-java )

sed -i '' '/^ @JsonProperty("Role")$/N;/\n private String role;$/d' src/main/java/io/getstream/models/CallParticipant.java
perl -i -0pe 's/ \@JsonProperty\("Role"\)\n private String role;\n//g' src/main/java/io/getstream/models/CallParticipant.java

# format generated code
./gradlew spotlessApply
# Clean up test files that may exist in main source from older generator versions
# (generator now outputs tests directly to src/test/)
rm -f src/main/java/io/getstream/WebhookTest.java

./gradlew build -x test
# format generated code, clean stale Gradle/Spotless caches, then build
./gradlew clean spotlessApply build -x test
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version=5.0.1
version=6.0.0-beta.1
Loading