Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
170 changes: 74 additions & 96 deletions .speakeasy/gen.lock

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions .speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ generation:
securityFeb2025: true
sharedErrorComponentsApr2025: true
sharedNestedComponentsJan2026: true
nameOverrideFeb2026: false
auth:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: true
Expand All @@ -23,13 +24,14 @@ generation:
schemas:
allOfMergeStrategy: shallowMerge
requestBodyFieldName: body
versioningStrategy: automatic
persistentEdits: {}
tests:
generateTests: false
generateNewTests: true
skipResponseBodyAssertions: false
java:
version: 3.12.0
version: 3.13.0
additionalDependencies: []
additionalPlugins: []
artifactID: novu
Expand All @@ -41,10 +43,12 @@ java:
companyURL: https://novu.co
defaultErrorName: APIException
enableCustomCodeRegions: false
enableFormatting: false
enableSlf4jLogging: true
enableStreamingUploads: true
flattenGlobalSecurity: true
forwardCompatibleEnumsByDefault: true
forwardCompatibleUnionsByDefault: "false"
generateOptionalUnionAccessors: true
generateSpringBootStarter: true
githubURL: github.com/novuhq/novu-java
Expand All @@ -67,10 +71,10 @@ java:
maxMethodParams: 4
multipartArrayFormat: standard
nullFriendlyParameters: true
openUnions: true
operationScopedParams: true
outputModelSuffix: output
packageName: co.novu
projectName: novu
respectTitlesForPrimitiveUnionMembers: false
templateVersion: v2
unionStrategy: populated-fields
16 changes: 8 additions & 8 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
speakeasyVersion: 1.696.0
speakeasyVersion: 1.723.0
sources:
'DEPRECATED: Novu API. Use -openapi.{json,yaml} instead.':
sourceNamespace: novu-oas
Expand All @@ -9,20 +9,20 @@ sources:
- 3.12.0
novu-OAS:
sourceNamespace: novu-oas
sourceRevisionDigest: sha256:a4fbb15bb61b8963d50031aae18f985aceda5366f1006f4a94cc46a30b5ec47b
sourceBlobDigest: sha256:b05171ab57555446bc0e3be838b9667f5c44b575222c90ee36a7ab1416cefe1f
sourceRevisionDigest: sha256:17fc28f18d91df220a9de6e2c75cd3b666184d942a96db91a9d603bfe7854bcb
sourceBlobDigest: sha256:a874a5b9654c9565f69db73eb0b4f1d0a2569d0e37e750a69fe5bfcb2bc6054b
tags:
- latest
- speakeasy-sdk-regen-next-1769072241
- 3.12.0
- speakeasy-sdk-regen-next-1769213168
- 3.13.0
targets:
novu:
source: novu-OAS
sourceNamespace: novu-oas
sourceRevisionDigest: sha256:a4fbb15bb61b8963d50031aae18f985aceda5366f1006f4a94cc46a30b5ec47b
sourceBlobDigest: sha256:b05171ab57555446bc0e3be838b9667f5c44b575222c90ee36a7ab1416cefe1f
sourceRevisionDigest: sha256:17fc28f18d91df220a9de6e2c75cd3b666184d942a96db91a9d603bfe7854bcb
sourceBlobDigest: sha256:a874a5b9654c9565f69db73eb0b4f1d0a2569d0e37e750a69fe5bfcb2bc6054b
codeSamplesNamespace: novu-oas-java-code-samples
codeSamplesRevisionDigest: sha256:9eecd94f19a0c7e69f99232c659351eed0e2f4b81e96c62631fa1f404239ef91
codeSamplesRevisionDigest: sha256:5c2d4382f80ca859d4e2dc5a96f870c99a79ee4de6c5065fefeb34d9ba30ce97
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,15 @@ The samples below show how a published SDK artifact is used:

Gradle:
```groovy
implementation 'co.novu:novu:3.12.0'
implementation 'co.novu:novu:3.13.0'
```

Maven:
```xml
<dependency>
<groupId>co.novu</groupId>
<artifactId>novu</artifactId>
<version>3.12.0</version>
<version>3.13.0</version>
</dependency>
```

Expand Down Expand Up @@ -482,7 +482,7 @@ public class Application {

#### [Environments.Tags](docs/sdks/tags/README.md)

* [get](docs/sdks/tags/README.md#get) - Get environment tags
* [get](docs/sdks/tags/README.md#get) - List environment tags

### [Integrations](docs/sdks/integrations/README.md)

Expand Down Expand Up @@ -571,7 +571,7 @@ public class Application {
* [modify](docs/sdks/topics/README.md#modify) - Update a topic
* [remove](docs/sdks/topics/README.md#remove) - Delete a topic
* [createSubscription](docs/sdks/topics/README.md#createsubscription) - Create topic subscriptions
* [getSubscriptionById](docs/sdks/topics/README.md#getsubscriptionbyid) - Get a topic subscription
* [getSubscriptionById](docs/sdks/topics/README.md#getsubscriptionbyid) - Retrieve a topic subscription

### [Topics.Subscribers](docs/sdks/topicssubscribers/README.md)

Expand Down
12 changes: 11 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,14 @@ Based on:
### Generated
- [java v3.12.0] .
### Releases
- [Maven Central v3.12.0] https://central.sonatype.com/artifact/co.novu/novu/3.12.0 - .
- [Maven Central v3.12.0] https://central.sonatype.com/artifact/co.novu/novu/3.12.0 - .

## 2026-02-23 00:07:27
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.723.0 (2.835.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [java v3.13.0] .
### Releases
- [Maven Central v3.13.0] https://central.sonatype.com/artifact/co.novu/novu/3.13.0 - .
8 changes: 4 additions & 4 deletions docs/models/components/MessageActionResult.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

## Fields

| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `payload` | [Optional\<MessageActionResultPayload>](../../models/components/MessageActionResultPayload.md) | :heavy_minus_sign: | Payload of the action result |
| `type` | [Optional\<ButtonTypeEnum>](../../models/components/ButtonTypeEnum.md) | :heavy_minus_sign: | Type of button for the action result |
| Field | Type | Required | Description |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| `payload` | Map\<String, *Object*> | :heavy_minus_sign: | Payload of the action result |
| `type` | [Optional\<ButtonTypeEnum>](../../models/components/ButtonTypeEnum.md) | :heavy_minus_sign: | Type of button for the action result |
9 changes: 0 additions & 9 deletions docs/models/components/MessageActionResultPayload.md

This file was deleted.

4 changes: 2 additions & 2 deletions docs/models/components/MessageResponseDto.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@
| `status` | [MessageStatusEnum](../../models/components/MessageStatusEnum.md) | :heavy_check_mark: | Status of the message | |
| `errorId` | *Optional\<String>* | :heavy_minus_sign: | Error ID if the message has an error | |
| `errorText` | *Optional\<String>* | :heavy_minus_sign: | Error text if the message has an error | |
| `payload` | [Optional\<MessageResponseDtoPayload>](../../models/components/MessageResponseDtoPayload.md) | :heavy_minus_sign: | The payload that was used to send the notification trigger | |
| `overrides` | [Optional\<MessageResponseDtoOverrides>](../../models/components/MessageResponseDtoOverrides.md) | :heavy_minus_sign: | Provider specific overrides used when triggering the notification | |
| `payload` | Map\<String, *Object*> | :heavy_minus_sign: | The payload that was used to send the notification trigger | |
| `overrides` | Map\<String, *Object*> | :heavy_minus_sign: | Provider specific overrides used when triggering the notification | |
| `contextKeys` | List\<*String*> | :heavy_minus_sign: | Context (single or multi) in which the message was sent | [<br/>"tenant:org-123",<br/>"region:us-east-1"<br/>] |
9 changes: 0 additions & 9 deletions docs/models/components/MessageResponseDtoOverrides.md

This file was deleted.

9 changes: 0 additions & 9 deletions docs/models/components/MessageResponseDtoPayload.md

This file was deleted.

3 changes: 3 additions & 0 deletions docs/sdks/subscribers/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## Overview

A subscriber in Novu represents someone who should receive a message. A subscriber's profile information contains important attributes about the subscriber that will be used in messages (name, email). The subscriber object can contain other key-value pairs that can be used to further personalize your messages.
<https://docs.novu.co/subscribers/subscribers>

### Available Operations

* [search](#search) - Search subscribers
Expand Down
2 changes: 1 addition & 1 deletion docs/sdks/tags/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

### Available Operations

* [get](#get) - Get environment tags
* [get](#get) - List environment tags

## get

Expand Down
7 changes: 5 additions & 2 deletions docs/sdks/topics/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## Overview

Topics are a way to group subscribers together so that they can be notified of events at once. A topic is identified by a custom key. This can be helpful for things like sending out marketing emails or notifying users of new features. Topics can also be used to send notifications to the subscribers who have been grouped together based on their interests, location, activities and much more.
<https://docs.novu.co/subscribers/topics>

### Available Operations

* [fetchAll](#fetchall) - List all topics
Expand All @@ -10,7 +13,7 @@
* [modify](#modify) - Update a topic
* [remove](#remove) - Delete a topic
* [createSubscription](#createsubscription) - Create topic subscriptions
* [getSubscriptionById](#getsubscriptionbyid) - Get a topic subscription
* [getSubscriptionById](#getsubscriptionbyid) - Retrieve a topic subscription

## fetchAll

Expand Down Expand Up @@ -395,7 +398,7 @@ public class Application {

## getSubscriptionById

Get a subscription by its unique identifier for a topic.
Retrieve a subscription by its unique identifier for a topic.

### Example Usage

Expand Down
3 changes: 3 additions & 0 deletions docs/sdks/translations/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## Overview

Used to localize your notifications to different languages.
<https://docs.novu.co/platform/workflow/translations>

### Available Operations

* [create](#create) - Create a translation
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
groupId=co.novu
artifactId=novu
version=3.12.0
version=3.13.0
org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g
52 changes: 46 additions & 6 deletions src/main/java/co/novu/AsyncNovu.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,33 @@ public class AsyncNovu {
* <p><a href="https://docs.novu.co/platform/workflow/layouts">https://docs.novu.co/platform/workflow/layouts</a>
*/
private final AsyncLayouts layouts;

/**
* A subscriber in Novu represents someone who should receive a message. A subscriber's profile
* information contains important attributes about the subscriber that will be used in messages (name,
* email). The subscriber object can contain other key-value pairs that can be used to further
* personalize your messages.
*
* <p><a href="https://docs.novu.co/subscribers/subscribers">https://docs.novu.co/subscribers/subscribers</a>
*/
private final AsyncSubscribers subscribers;

private final AsyncSubscribersTopics subscribersTopics;

/**
* Topics are a way to group subscribers together so that they can be notified of events at once. A
* topic is identified by a custom key. This can be helpful for things like sending out marketing
* emails or notifying users of new features.
*
* <p>Topics can also be used to send notifications to the subscribers who have been grouped together
* based on their interests, location, activities and much more.
*
* <p><a href="https://docs.novu.co/subscribers/topics">https://docs.novu.co/subscribers/topics</a>
*/
private final AsyncTopics topics;

/**
* Used to localize your notifications to different languages.
*
* <p><a href="https://docs.novu.co/platform/workflow/translations">https://docs.novu.co/platform/workflow/translations</a>
*/
private final AsyncTranslations translations;
/**
* All notifications are sent via a workflow. Each workflow acts as a container for the logic and
Expand Down Expand Up @@ -125,19 +145,39 @@ public AsyncActivity activity() {
public AsyncLayouts layouts() {
return layouts;
}

/**
* A subscriber in Novu represents someone who should receive a message. A subscriber's profile
* information contains important attributes about the subscriber that will be used in messages (name,
* email). The subscriber object can contain other key-value pairs that can be used to further
* personalize your messages.
*
* <p><a href="https://docs.novu.co/subscribers/subscribers">https://docs.novu.co/subscribers/subscribers</a>
*/
public AsyncSubscribers subscribers() {
return subscribers;
}

public AsyncSubscribersTopics subscribersTopics() {
return subscribersTopics;
}

/**
* Topics are a way to group subscribers together so that they can be notified of events at once. A
* topic is identified by a custom key. This can be helpful for things like sending out marketing
* emails or notifying users of new features.
*
* <p>Topics can also be used to send notifications to the subscribers who have been grouped together
* based on their interests, location, activities and much more.
*
* <p><a href="https://docs.novu.co/subscribers/topics">https://docs.novu.co/subscribers/topics</a>
*/
public AsyncTopics topics() {
return topics;
}

/**
* Used to localize your notifications to different languages.
*
* <p><a href="https://docs.novu.co/platform/workflow/translations">https://docs.novu.co/platform/workflow/translations</a>
*/
public AsyncTranslations translations() {
return translations;
}
Expand Down
9 changes: 8 additions & 1 deletion src/main/java/co/novu/AsyncSubscribers.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,14 @@
import java.lang.String;
import java.util.concurrent.CompletableFuture;


/**
* A subscriber in Novu represents someone who should receive a message. A subscriber's profile
* information contains important attributes about the subscriber that will be used in messages (name,
* email). The subscriber object can contain other key-value pairs that can be used to further
* personalize your messages.
*
* <p><a href="https://docs.novu.co/subscribers/subscribers">https://docs.novu.co/subscribers/subscribers</a>
*/
public class AsyncSubscribers {
private static final Headers _headers = Headers.EMPTY;
private final SDKConfiguration sdkConfiguration;
Expand Down
Loading