novu-kotlin
novu-kotlin copied to clipboard
Kotlin SDK for Novu - The open-source notification infrastructure for engineers. 🚀
Novu Kotlin SDK
The Novu Kotlin SDK provides a fluent and expressive interface for interacting with Novu's API and managing notifications. Please refer to the full documentation to learn more.
Installation
Maven users:
<!--add dependency-->
<dependency>
<groupId>co.novu</groupId>
<artifactId>novu-kotlin</artifactId>
<version>1.2.0</version>
</dependency>
Gradle users:
//Kotlin
//add dependency
implementation("co.novu:novu-kotlin:1.2.0")
//Groovy
//add dependency
implementation 'co.novu:novu-kotlin:1.2.0'
Sync your project, and you should have the artifacts downloaded.
Usage
To use the library, first initialize the client with your API token:
// without changing the backend URL
import co.novu.Novu
import co.novu.extensions.environments
fun main() {
val novu = Novu(apiKey = "API_KEY")
val environment = novu.environments()
println(environment)
}
// with config param
import co.novu.Novu
import co.novu.NovuConfig
import co.novu.extensions.environments
fun main() {
val config = NovuConfig(backendUrl = "URL", apiKey = "API_KEY")
val novu = Novu(config)
val environment = novu.environments()
println(environment)
}
You can then call methods on the client to interact with the Novu API:
novu.subscribers()
List of all methods
The client methods map directly to the Novu API endpoints. Here is a list of all the available methods. Check the API docs for list of available methods
.
Changes
-
changes(query = {})
-
countChanges()
-
applyBulkChanges()
-
applyChange(changeId)
Environments
-
currentEnvironment()
-
createEnvironment(body)
-
environments()
-
updateEnvironment(environmentId, body)
-
apiKeys()
-
regenerateApiKeys()
-
updateWidgetSettings(body)
Events
-
triggerEvent(body)
-
triggerBulkEvent(body)
-
broadcastEvent(body)
-
cancelTriggeredEvent(transactionId)
Execution Details
-
executionDetails(query = {})
Feeds
-
createFeed(body)
-
feeds()
-
deleteFeed(feedId)
Inbound Parse
-
validateMxRecordSetupForInboundParse()
Integrations
-
integrations()
-
createIntegration(body)
-
activeIntegrations()
-
webhookProviderStatus(providerId)
-
updateIntegration(integrationId, body)
-
deleteIntegration(integrationId)
-
channelLimit(channelType)
-
inAppStatus()
Layouts
-
createLayout(body)
-
layouts(query = {})
-
layout(layoutId)
-
deleteLayout(layoutId)
-
updateLayout(layoutId, body)
-
makeDefaultLayout(layoutId)
Messages
-
messages(query = {})
-
deleteMessage(messageId)
Notification Groups
-
createNotificationGroup(body)
-
notificationGroups()
Notification Templates
-
notificationTemplates(query = {})
-
createNotificationTemplate(body)
-
updateNotificationTemplate(templateId, body)
-
deleteNotificationTemplate(templateId)
-
notificationTemplate(templateId)
-
notificationTemplateBlueprint(templateId)
-
createNotificationTemplateBlueprint(templateId)
-
updateNotificationTemplateStatus(templateId, body)
Notification
-
notifications(query = {})
-
notificationsStats()
-
notificationsGraphStats(query = {})
-
notification(notificationId)
Subscribers
-
subscribers(query = {})
-
createSubscriber(body)
-
createSubscriberBulk(body)
-
subscriber(subscriberId)
-
updateSubscriber(subscriberId, body)
-
deleteSubscriber(subscriberId)
-
updateSubscriberCredentials(subscriberId, body)
-
updateSubscriberOnlineStatus(subscriberId, body)
-
subscriberPreferences(subscriberId)
-
updateSubscriberPreference(subscriberId, templateId, body)
-
subscriberNotificationFeed(subscriberId, query = {})
-
subscriberUnseenNotificationCount(subscriberId, query = {})
-
markSubscriberFeedSeen(subscriberId, body)
-
markMessageActionSeen(subscriberId, messageId, type)
Topics
-
createTopic(body)
-
filterTopics(page, pageSize, key)
-
addSubscribers(topicKey, body)
-
removeSubscribers(topicKey, body)
-
checkSubscriber(topicKey, externalSubscriberId)
-
topic(topicKey)
-
renameTopic(topicKey, body)
-
deleteTopic(topicKey)
Blueprints
-
getBlueprintsByCategory()
-
getBlueprint(templateId)
Tenants
-
getTenants(page, limit)
-
createTenant(body)
-
getTenant(identifier)
-
updateTenant(identifier)
-
deleteTenant(identifier)
Organizations
-
createOrganization(body)
-
fetchAllOrganizations()
-
updateOrganizationName(body)
-
fetchCurrentOrganization()
-
removeMemberWithId(identifier)
-
updateMemberRole(identifier, body)
-
fetchMembersOfOrganization()
-
updateOrganizationBrand(body)
Workflow Override
-
createWorkflowOverride(createWorkflowOverrideRequest)
-
getWorkflowOverrides(getWorkflowOverrideRequest)
-
getWorkflowOverride(workflowId, tenantId)
-
getWorkflowOverrideById(overrideId)
-
updateWorkflowOverride(workflowId, tenantId)
-
updateWorkflowOverrideById(overrideId)
-
deleteWorkflowOverride(overrideId)
For more information about these methods and their parameters, see the API documentation.
Contributing
Feature requests, bug reports and pull requests are welcome. Please create an issue.
Support and Feedback
Be sure to visit the Novu official documentation website for additional information about our API. If you need additional assistance, join our Discord server here.
License
Novu Kotlin SDK is licensed under the MIT License - see the LICENSE file for details.